perm filename NOTICE[UP,DOC]66 blob
sn#185719 filedate 1975-11-11 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00169 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00014 00002 *1969 DDT WFW
C00021 00003 *1 Jan 1972 SAIL Statement Counter Profile RES
C00022 00004 *1 JAN 1972 DO RPH
C00023 00005 *1 JAN 1972 DMAN REG
C00024 00006 *1 JAN 1972 SPOOLER REG
C00025 00007 *1 JAN 1972 RSL SL WHAMS BAMS ETC JHS
C00026 00008 *1 JAN 1972 Keyboard Commands LES
C00027 00009 *FEB 1972 NEW WHO DCS
C00030 00010 *25 Feb 1972 NOTICEs LES
C00032 00011 *29 Feb 1972 "Sticky PPN's" (RPG, COMPILE) DCS
C00033 00012 *2 Mar 1972 CREF Default Listing Device DCS
C00034 00013 *14 Mar 1972 TV "." and <esc>I Features DCS
C00035 00014 *23 Mar 1972 TV for III DCS
C00036 00015 *MAR 1972 LOGOUT REG
C00038 00016 *30 APR 1972 FAIL FW
C00039 00017 *3 JUN 1972 RAID DCS
C00046 00018 *4 JUN 1972 NEW DISPLAY EDITOR SRS
C00047 00019 *6 JUN 1972 PUB MANUAL TES
C00049 00020 *14 June 1972 VIDEO SWITCH DOCUMENTATION LES
C00050 00021 *7 July 1972 DOCUMENTATION FILES LES
C00051 00022 *23 JULY 1972 KLOG RHT
C00052 00023 *24 Jul 1972 SAIL DCS,RHT,JRL
C00056 00024 *25 Jul 1972 SPOOLER REG
C00057 00025 *1 Aug 1972 FORTRAN REG
C00058 00026 *9 Aug 1972 DATA DISK FW
C00060 00027 *16 Aug 1972 AP NEWS (APE, HOT) ME
C00062 00028 *16 AUG 1972 SAIL MATRIX ROUTINES PACKAGE SHK
C00064 00029 *30 Aug 1972 UUO SHK
C00065 00030 *4 Sept 1972 AP NEWS (APE, HOT) ME
C00066 00031 *4 Sept 1972 FILDMP RPH
C00067 00032 *4 Sept 1972 NEW SAIL RHT
C00068 00033 *22 Sept 1972 NEW SAIL RHT,JRL,KVL
C00071 00034 *22 Sept 1972 Upper Segment RAID and DDT TVR
C00072 00035 *22 Sept 1972 AP NEWS (APE) ME
C00073 00036 *12 Oct 1972 FAIL TVR
C00074 00037 *21 Oct 1972 SAIL JRL,RHT,KVL
C00077 00038 *3 Nov 1972 USER INTERRUPTS FW
C00078 00039 *3 Nov 1972 VIDEO SWITCH FW
C00079 00040 *8 Nov 1972 DUMPS REG
C00080 00041 *8 Nov 1972 PROTECTION REG
C00081 00042 *11 Nov 1972 SYSTEM REG
C00082 00043 *26 Nov 1972 FTP DCS
C00084 00044 *26 Nov 1972 MLISP2 DAV
C00087 00045 *3 Dec 1972 SAIL RHT
C00090 00046 *12 Dec 1972 AP NEWS (APE) ME
C00092 00047 *12 DEC 1972 PUB TES
C00094 00048 *9 Jan 1973 NEWS LES
C00096 00049 *23 Jan 1973 AP NEWS (APE) ME
C00099 00050 *28 Jan 1973 SAIL JRL
C00101 00051 *22 Feb 1973 FAIL FW
C00103 00052 *25 FEB 1973 COPY RPH
C00104 00053 *4 MARCH 1973 MLISP DAV
C00106 00054 *5 MARCH 1973 PUB TES
C00112 00055 *9 MARCH 1973 MLISP2 DAV
C00117 00056 *16 March 1973 FREEFOROL processes Text Macros LES
C00118 00057 *21 March 1973 WHERE Command TVR
C00119 00058 *27 March 1973 TV ↔ E switching DCS and FW
C00120 00059 *4 April 1973 TALKER, FTP DCS
C00121 00060 *5 April 1973 PUB TES
C00122 00061 *8 April 1973 APE, AUTOMATIC NOTIFICATION ME
C00124 00062 *9 April 1973 APE, AUTOMATIC NOTIFICATION ME
C00128 00063 *11 APR 1973 INFO REM
C00129 00064 *11 APR 1973 XGP REM
C00131 00065 *9 May 1973 FAIL FW
C00133 00066 *19 MAY 1973 MLISP2 DAV
C00134 00067 *22 May 1973 MAIL SEND REMIND CANCEL BH
C00135 00068 *1 JUNE 1973 MLISP2 DAV
C00137 00069 *2 Jun 1973 MAIL SEND REMIND CANCEL LATER GRIPE BH
C00140 00070 *4 Jun 1973 MAIL SEND REMIND LATER CANCEL GRIPE BH
C00141 00071 *19 June 1973 WHOLINE TIME DAYTIME ESCAPE X ESCAPE Q ME
C00149 00072 *2 July 1973 NOTICEs ME
C00150 00073 *12 July 1973 SYSTEM NEWS PROGRAM ME
C00152 00074 *12 July 1973 MAIL SEND REMIND RCV BH
C00155 00075 *23 JULY 1973 SAIL RHT JRL HJS KVL
C00166 00076 *1 June 1974 FINGER LES
C00168 00077 *7 Aug 1973 SEND MAIL BH
C00171 00078 *13 Aug 1973 RCV BH
C00173 00079 *14 Aug 1973 LOADER and RPG TVR
C00176 00080 *14 Aug 1973 FIND DCS
C00179 00081 *14 Aug 1973 PUB XGPUB RKJ
C00183 00082 *5 SEPT 1973 NETWORK NETWRK TALKER TELNET FTP RPH
C00184 00083 *5 Sept 1973 FONT conversion for XGP (FCOPY) TVR
C00187 00084 *18 Sept 1973 PUB Command in RPG FW
C00188 00085 *25 Sept 1973 PUB Changes for XGP TES
C00190 00086 *28 Sept 1973 FILES command ME
C00194 00087 *29 Oct 1973 RAID FW
C00197 00088 *31 Oct 1973 LOADER FW
C00199 00089 *2 Nov 1973 EDFONT (XGP) TVR
C00201 00090 *19 Nov 1973 XGP (Underline) REG
C00202 00091 *29 Nov 1973 E FW
C00205 00092 *3 Dec 1973 LISP RWW
C00207 00093 *17 DEC 1973 COPY RPH
C00208 00094 *8 JAN 1974 NEWS LES
C00209 00095 *20 Jan 1974 EDFONT TVR
C00210 00096 *16 MAR 1974 BOOK MODE (/B) in E (READ) ME
C00216 00097 *8 APR 1974 FAIL changes REG
C00219 00098 *14 Apr 1974 Font Sampler TVR
C00222 00099 *22 APR 1974 FAIL changes (continued) REG
C00223 00100 *22 MAY 1974 FILE PROTECTION DSKPRO REG
C00229 00101 *24 May 1974 REMOTE LOGINS BH
C00231 00102 *26 May 1974 News Service--NS ME
C00234 00103 *28 May 1974 News Service--NS--HOT ME
C00235 00104 *1 JUN 1974 NETWORK MAIL BH
C00242 00105 *4 JUN 1974 NETWORK MAIL QUEUE BH
C00245 00106 *6 JUN 1974 PTYJOB JBR
C00246 00107 *7 JUN 1974 TELNET,PTYJOB,DIAL JBR
C00247 00108 *14 June 1974 News Service--NS ME
C00255 00109 *28 July 1974 FCOPY - Font conversion TVR
C00257 00110 *31 July 1974 News Service--NS ME
C00262 00111 *16 August 1974 VODER Service - Voice Synthesizer REG
C00264 00112 *19 August 1974 TELNET, PTYJOB, DIAL JBR
C00265 00113 *21 August 1974 MAIL APPEND BH
C00267 00114 *4 Sept 1974 News Service--NS--HOT ME
C00271 00115 *5 Sept 1974 RCV SOS mode BH
C00274 00116 *13 Sept 1974 News Service--HOT ME
C00277 00117 *22 Sept 1974 INIT Login option SGK
C00278 00118 *27 Sept 1974 Dired SGK
C00279 00119 *29 Sept 1974 Subject Line in Network Mail BH
C00282 00120 *4 Oct 1974 MAIL to random files BH
C00284 00121 *8 Oct 1974 News Service--NS ME
C00287 00122 *11 Oct 1974 MAIL--APPEND TO FILE BH
C00289 00123 *14 Oct 1974 MAIL - E SWAP FEATURE BH
C00291 00124 *14 Oct 1974 SAIL -- SAISG8 version. RHT
C00299 00125 *25 Oct 1974 MAIL RCV BH
C00301 00126 *30 Oct 1974 FAIL REG
C00305 00127 *4 Nov 1974 PLAN EXPIRATION (MAIL) BH
C00306 00128 *5 Nov 1974 ILISP (IL,actually) IMPROVEMENTS DWP
C00314 00129 *20 Nov 1974 DATE75 DATE REG
C00315 00130 *24 Nov 1974 RCV BH
C00318 00131 *24 Nov 1974 MAIL EVENT BH
C00321 00132 *26 Nov 1974 Keyword Indexing: INDEX. Text Retrieval: NS. ME
C00323 00133 *26 Nov 1974 EVENT RCV BH
C00326 00134 *12 Dec 1974 KEYBOARD MAPPING BH
C00330 00135 *4 Dec 1974 NEW TELEPHONE LINES & BUSINESS CARDS LES
C00332 00136 *9 Jan 1975 NETWORK MAIL CC LINE BH
C00334 00137 *26 Jan 1975 RCV: GRIPE AND NAP CHANGES BH
C00336 00138 *18 Feb 1975 MAIL/Q OPTION FOR ARPA MAIL BH
C00338 00139 *9 Mar 1975 Copy ∂ feature improved. SGK
C00339 00140 *16 Mar 1975 Raid, Nraid, Nnraid JBR
C00342 00141 *17 Mar 1975 ETV Tempcore and QQSVED.RPG facility SGK
C00346 00142 *20 Mar 1975 FTP BH
C00355 00143 *31 Mar 1975 COPY comments, page lists ME
C00356 00144 *9 Apr 1975 Telephone Experiment SGK
C00358 00145 *9 Apr 1975 FTP BH
C00361 00146 *19 Apr 1975 FTP server BH
C00364 00147 *23 Apr 1975 FTP multiple RETR/STOR BH
C00371 00148 *30 Apr 1975 FTP BH
C00372 00149 *24 May 1975 NETWORK SEND (MAIL) FTPS BH
C00374 00150 *1 June 1975 WHO ME
C00380 00151 *22 June 1975 WHO jobs to display and command files: *+-"@ ME
C00390 00152 *1 JUL 1975 VIDEO SWITCH MAPPING BH
C00405 00153 *6 July 1975 WHO monitor command line ME
C00408 00154 *13 July 1975 WHO monitor command line (TTYs), T F commands ME
C00409 00155 *15 July 1975 COPY DIRECTORY switches. "]" and "\". ME
C00413 00156 *9 Aug 1975 FTP PICKUP MULTIPLE TRANSFER BH
C00417 00157 *25 Aug 1975 FIND WITHIN ME
C00421 00158 *1 Sept 1975 FIND MAIL FILES (∂) ME
C00423 00159 *8 Sept 1975 COPY /NOFF ME
C00425 00160 *22 Sept 1975 SAIL JFR
C00427 00161 *27 Sept 1975 RAID POINT mode input JBR
C00428 00162 *13 Oct 1975 FINGER LES
C00432 00163 *25 Oct 1975 SNAIL (the new RPG) MJC
C00445 00164 *26 Oct 1975 RAID JBR
C00447 00165 *29 Oct 1975 SNAIL MJC
C00452 00166 *30 October 1975 Bureaucracy: Computer time usage LES
C00459 00167 *4 Nov 1975 Pub Update LES
C00460 00168 *6 Nov 1975 PALX JBR
C00461 00169 *11 Nov 1975 Phone Call Logging LES
C00465 ENDMK
C⊗;
*1969 DDT WFW
The following changes have been made to DDT:
l. Halfword printout is now of the form A,,B instead
of (A)B. Either form may be used on input. The difference
is that A,,B truncates A to 18 bits before
swapping halves while (A)B does not.
2. $U is a new output mode. It is the same as $A$H.
3. $F mode will now print normalized floating permit
numbers as decimal integers. This means that
FORTRAN users may, in general, use $F to look at
all variables and they will be printed correctly
either fixed or floating.
4. If the address of a string of ASCIZ text is placed
in $nB+3, then whenever breakpoint n is reached,
DDT will act as if the characters in the string were
being read from the teletype. If you are preparing
such a string in advance use either $ or ≠ (≠33 octal)
for altmode.
5. If a bytepointer to an asciz string is placed in
$M-l, DDT will act as if the characters in the string
are being read from the teletype.
6. $$7" <delimiter> characters <delimiter> will act just
like an asciz statement in MACRO or FAIL,i.e.,
more than one word will be filled with asciz for
the characters if necessary. $$" will have a similar
effect but with sixbit.
7. Typing <number>$$P will cause DDT to do an automatic
proceed <number> times instead of forever.
8. When printing in $$ mode, no word will be printed
out as an I/O instruction (COND, DATAO, CONI, etc.)
unless the device number is in a special table. The
table is 10 words long and is in $I-1, $I-2, etc.
Simply put device number here to have the appropriate I/O
instructions printed.
9. If an address is placed in $M-2 then for each character
DDT wishes to output, a pushj 1,@$M-2 will be executed.
This allows output to be redirected to some device
other than the TTY. The character is in register 5. The
routine should preserve all AC's and end with a POPJ l,.
10. In byte mode output ($<number>0), if a size of 0
is specified, DDT will use a special mark in $M+2.
The boundry between 1 and 0 bits specifies the size
of the bytes. For example, a word containing
11111111111 00000000000 11100010110001
would print 2 . 11 bit bytes, 2 3 bit bytes, 2 1 bit
bytes, a 2 bit bytes, a 3 bit byte, and a 1 bit byte.
11. Bytes may be input of $<number>%. This should be
followed by a string of unsigned octal numbers
separated by common and terminated by an altmode. The
number of bytes in a word is not integal the last
byte is treated as if the word were larger
(bit number greater than 35). This makes input compatible
with output. A size of O uses the mark in $M+2
as above.
12. It is now possible to print flag words and T type
instruction (TRUN, TLNN, etc.) with suitable names
for the bit involved. In $M+3 a pointer of the following
form is placed:
_______
| |
_______ | |
$M+3 | L1 | T0 | | Table 0 |
| |
_______
_______
| |
| Table 1 |
| |
_______
_______
| |
| Table 2 |
| |
_______
As many tables as desired may be included. The pointer
to the last table should have 0 in the left half. Each
table contains 36 words. The nth word contains the
RADIX50 for the name of bit n. $<number>J mode will
cause a word to be printed out using the bit names in
table number. If an entry for a bit in 0, the numeric
value will be printed. A typical word might look like
foo! baz! 123,, fool! garp! 2
$J means $0J. $nL causes the left half to be
printed in symbolic and the right half to be printed in
↑STODAT:
bit mode, using the names of the bits as if they appeared
in the left half. $<number>V prints the left half in symbolic
and the right half in bit mode.
13. You can now transfer to what is pointed to by the left half
of a word in the same manner as you transfer using <tab>.
The command is <control>] (≥ on displays).
*1 Jan 1972 SAIL Statement Counter Profile RES
To find out how to get SAIL to give you execution frequency data for
pieces of your program, list NEWMAN[S,AIL].
*1 JAN 1972 DO RPH
Manual is in DO.RPH[S,DOC].
*1 JAN 1972 DMAN REG
Dectape manager (PDP-10 format) -- see DMAN.REG[S,DOC].
*1 JAN 1972 SPOOLER REG
See SPOOL.DOC[S,DOC].
*1 JAN 1972 RSL SL WHAMS BAMS ETC JHS
Service Level Reservation System -- see RSL[S,DOC]
*1 JAN 1972 Keyboard Commands LES
To get a summary of line editor and other Monitor commands, list
KEY.LES[S,DOC).
*FEB 1972 NEW WHO DCS
As of 12-9-71:
1. WHO will run for about two minutes, then quit. You can reset
this time by issuing commands (see below).
2. Typing <call> does not stop spacewar jobs. However, after about
6 seconds of operation after a <call>, the spacewar portion of
WHO will bomb out (PC EXCEEDS MEM BOUNDS AT 377777). This will
be made cleaner if the system types give me some help.
3. WHO commands are now single-character commands. WHO will not wait
for a carriage return before executing one.
4. Previously, many lines of the WHO page were lost below the bottom
of the screen. WHO now provides a "windowing" feature. Type "↑"
to move the text up, so that the line which did appear at the
center of the screen now appears at the top. This reveals several
new lines at the bottom. A digit preceding the "↑" serves as a
repeat factor.
5. The "↓" command, with optional repeat factor, moves the text down
by a half-screenful, unless the first line already is displayed.
6. The "E" command causes WHO to quit. However, the last-drawn screen
will not be cleared. So you can look at it.
7. Any other character will cause WHO to clear the screen (revealing
your old page printer), then quit.
*25 Feb 1972 NOTICEs LES
This file, kept in NOTICE[UP,DOC], is intended to function as a
computerized bulletin board. System programmers and CUSP file
contributors are invited to disseminate information concerning new
programs and system features by adding notices to this file. The
format is arbitrary, except that the first line (and only the first
line) should begin with a "*" and should contain three fields in the
form
*<date><TAB><subject><TAB><programmer initials>
In the date field, the year, month and day may be given in any order
and the year may be abbreviated to 2 digits, but the month must be
given as 3 or more letters.
*29 Feb 1972 "Sticky PPN's" (RPG, COMPILE) DCS
A PPN specification [P,PN] appearing before a file name in an
RPG command string will be used for all subsequent files which
do not specify a PPN explicitly. This default remains in effect
until another "sticky PPN" is specified.
As an example, if I am running under [AIL,DCS]:
COMPILE SAIL=HEAD+DB+[S,AIL]SAIL+SYM+PARSE+PROD[AIL,DCS]+EXPR
would write the output on [AIL,DCS], get HEAD,DB, and PROD from
[AIL,DCS], and get SAIL, SYM, PARSE, and EXPR from [S,AIL].
*2 Mar 1972 CREF Default Listing Device DCS
The CREF default listing device has been changed from LPT to DSK.
This change is not made in RPG mode (so that the CREF system
command will still go directly to LPT).
*14 Mar 1972 TV "." and <esc>I Features DCS
Typing "⊗." (see TVED.DCS[UP,DOC] for notation) will cause the current
page to become a permanent part of the file (like "W" in SOS). CANCEL
will henceforth bring back this version, not the old one.
To interrupt a "FIND" search prematurely, type <esc>I. This replaces
the "\<crlf>" method.
*23 Mar 1972 TV for III DCS
The TV editor (though still officially unsupported) will now run on
both Data-Disk and III. In fact, you can transfer (by detach/attach)
from one to the other in mid-edit!
*MAR 1972 LOGOUT REG
Recent changes to logout command.
The logout command is used to terminate a job that was created
by Login, Fork, or Cfork commands. The usual form of the command is
K or KJOB, typed at monitor level, followed by a carriage return.
A new command is called KAT, which combines the features of the
K command and the ATtach command. KAT requires the job number of the
job to which you want to attach. As in the Attach command, if you
are attaching to a job with a different PPN than the job you are leaving,
you must supply the ppn of the job to which you are attaching.
Command Formats
Note that curly backets { and } denote optional
arguments; pointy brackets < and > denote a symbolic item which should
be replaced by some concrete instantiation of that item.
K or KJOB command:
K{JOB}{/<switch list>}
KA{TTACH} <job number> {[<project name>,<programmer name>{]}}{/<switch list>}
Each command line is terminated by a carriage return.
The item <switch list> consists of any sequence of letters
chosen from the list below:
THIS LIST HAS BEEN OMITTED BECAUSE I FORGOT THEM ALL.
For further confusion, consult R. Gorin.
*30 APR 1972 FAIL FW
The double arrow character is no longer treated specially
within the comment portion of a line. When not within a
comment, it is equivalent to a carriage-return, line-feed
pair. Now, within comments, it prints as itself.
*3 JUN 1972 RAID DCS
A new version of RAID is on the system. Since it is compatible with
both Data-Disc and III consoles, I have put it on SYS: as both
RAID.REL and TVRAID.REL. Therefore /V, /1V, /H, /1H will all load
the same program. Later, TVRAID will be phased out (of LOADER, RPG)
and the numeric argument to H and V switches will be ignored.
This version has been tested fairly carefully. But report any
problems you have to DCS, anyway. The old files are saved as
RAID.RLO and TVRAID.RLO on [CSP,SYS].
The following things have been changed:
__ There are a few display changes; in particular, the arrow
conventions of the Data-Disc RAID are now used everywhere.
__ Byte mode input will be displayed in byte mode.
__ Conditional breakpoints now work exactly as advertised.
__ Symbol←Expr, Symbol:, and Symbol<ctrl>K now work properly.
__ All opcodes work on input (incl. ANDCAM, ORCAB, etc.)
The following new features have been added:
__ There are three new entries to the dispatch table preceding
DDT (JOBDDT → DDT) -- see RAID.ON[S,DOC] for the meaning of
this table. The three are:
DDT-12: →$RPTCNT See below
DDT-11: →$BGDDT First word of DDT
DDT-10: →DDTEND Last word of DDT
__ This is "Version 1" of RAID. The version is henceforth stored
in the leftmost 13 bits of JOBDDT. Since DDT and old RAID
contain 0 here, you can tell which you have loaded. This is for
the benefit of programs which use new features -- they can
try alternate methods if the Version isn't high enough.
__ If you insert a JSR $I in your program, you will effectively
place a breakpoint at that location. You can proceed via <ctrl>P.
DO NOT single-step or set a breakpoint on this instruction!
$I is an INTERNAL symbol in RAID. There is a pointer to it at
DDT-6.
__ When you type <call>DDT<cr>, RAID will simulate a breakpoint at
the address specified by JOBOPC. You can proceed with <ctrl>P.
Do not expect this to work if you enter DDT before running anything,
or if your program jumps to DDT (unless it stores a reasonable
address in JOBOPC first).
__ n<ctrl><meta>S, where n is a number, will execute instructions
in multi-step mode, as it would if n were absent. However, no
change will be made in the display until:
1) n instructions have been executed (<ctrl>X'ed subr =1 instr.)
2) RAID must pause to get instructions at a subroutine call.
3) You interrupt the stepping by typing something, or a
breakpoint is encountered.
After you respond at a type (2) pause, again the display remains
unchanged until one of the conditions occurs again. If you
responded <ctrl>S or <ctrl>X to the pause, the count will be
exhausted before the display changes again -- barring type (3)
events. The remaining count, if any, is always available in
$RPTCNT. This is useful for counting exact numbers of
executions in a given routine, etc.
__ Symbol<meta>K obliterates the Symbol. Unlike <ctrl>K, which
simply eliminates typout of the symbol, this also makes it
undefined for typein. If, for instance, you have two locations
with the name NM1, do:
NM2←NM1 Assigns a new name to one of them.
NM1<meta>K Deletes this symbol completely.
NM1; Reveals value of the other NM1. Now
NM2 refers to the first.
__ Macros:
Address<ctrl>M<letter> defines <ctrl><meta><letter> as
a macro. When the macro is invoked, Address (it can be just
an address or a byte pointer value) will be put in $M-1 (see
RAID.ON[S,DOC]. This has the effect of evaluating the string
at Address before evaluating any more keyboard input -- expanding
the macro. Be warned that many <ctrl><meta><letter> combinations
already mean something -- use one you can do without (the macro
takes precedence).
*4 JUN 1972 NEW DISPLAY EDITOR SRS
there now exists a new display editor, called ED, available for
experimentation. to run it, type
RU ED[S,SRS]
when it starts up, there will be some documentation on the screen.
ED is presently experimental, and improving. Features
include: editing several files at once, splitting screen between
several files or strings, faster than TV in some cases.
*6 JUN 1972 PUB MANUAL TES
A new version of PUB was put up today with some obscure bugs fixed.
Indexes and headings now work well. AFTER PAGE does not always
work, but AFTER TEXT is usually equivalent and does work.
If you must use old version, please tell me why! To use it, log in
as 12,TES and RUN PUB.
There is a new manual: SPOOL PUB.TES[S,DOC]/N/B It is 80 PAGES long, so
if you don't plan to use PUB for a few months, it is advisable to
wait for the SAILON to be printed. The new manual has an index
and a tutorial for beginners, plus appendices with (untested) examples.
To use PUB for simple purposes, only a portion of the manual needs to be
read.
*14 June 1972 VIDEO SWITCH DOCUMENTATION LES
A SAILON describing the video switch hardware resides in
VDS.LES[S,DOC]. A description of keyboard commands and monitor calls
for controlling the switch and DD channel allocation are described in
VIDEO.LES[UP,DOC]. To get a summary of the keyboard commands, say
"HELP DISPLAY" or "SPOOL KEY.LES[UP,DOC]".
*7 July 1972 DOCUMENTATION FILES LES
Online documentation files are divided into several areas, as follows.
[P,DOC] contains the compiled version of the lab phone
directory and other lists of people.
[UP,DOC] contains user program descriptions (informal).
[S,DOC] contains SAILONs, which are more formal descriptions
of programs and hardware.
[AIM,DOC] contains A. I. Memos, which report research results.
[BIB,DOC] contains bibliographies of films, theses, SAILONs, etc.
*23 JULY 1972 KLOG RHT
The KLOG command allows you to switch areas in one line. Semantically
it is LOGOUT, followed by LOGIN. The syntax is:
KLOG {/<logout switch>} {ppn spec (as you would type to LOGIN)}
examples
KLOG 1/RHT
KL/F 1|RHT
KL
1,RHT
*24 Jul 1972 SAIL DCS,RHT,JRL
LEAP news
1. In the past global model users of LEAP were required
to have the statement:
REQUIRE -1 NEW_ITEMS;
in order to inhibit the allocation of various tables
for the local leap model. This statement is no longer
required. Instead the decision to allocate the tables
will be made using the following criteria. The local model
tables will be allocated only if any of the programs loaded
together to form a single job contain any declared local
items ( that is, any items declared without the attribute
GLOBAL), or any of the programs contain the statement:
REQUIRE n NEW_ITEMS;
where "n" is greater that 0.
NOTE: this means that all users of local model LEAP must now
"require" new_items if they are going to dynamically create
non-global items by using the function NEW.(previously an
implicit REQUIRE 60 NEW_ITEMS was contained in every program).
2. LEAP tables are now allocated as part of the SAIL initialization
code rather than on the first call to any LEAP subroutine.
The tables will be allocated if any of the SAIL programs
loaded contain declared items, itemvars, sets, lists or calls
to LEAP. This change was made so that datums of items could
be utilized before the first call to LEAP.
3. The type codes for items have been altered. The new codes
returned by the TYPEIT function are as follows:
0 - item deleted or never allocated
1 - no type (no datum for this item)
2 - item is bracketed triple
3 - string
4 - real
5 - integer
6 - set
7 - list
8 - procedure
16 - string array
17 - real array
18 - integer array
19 - set array
20 - list array
21 - invalid (runtime has screwed something up)
The very astute user will notice that the only changes are to
up the codes for arrays and invalid by 5.
IMPORTANT NOTE:This unfortunately will necesitate the recompilation
and reloading of any programs which use array items as the RUNTIME
routines also use these type codes.The standard
compiler SAIL on [1,3] will have these changes as of 23:59 WED,
jul26. Therefore if any of your programs use array items you should
recompile them starting Thurs jul 27. Foist all complaints onto
Jim Low.
*25 Jul 1972 SPOOLER REG
SPOOLER NEWS:
The old spooler '*LIST*' has been removed from the system.
Users of the spooling subroutines described in SPSUB.REG[UP,DOC] will
have to reload with the new libraray.
The command SPOOLQ has been removed. Instead, use the command
QSPOOL. This has the advantage that the command can be abbreviated
to one letter and the SPOOL command to two letters.
A new SPOOL command is planned. This will allow users to more
fully utilize features of the new spooler.
*1 Aug 1972 FORTRAN REG
DEC FORTRAN version 25 and LIB40 version 31 have been put up.
Some of the bugs in the compiler / operating system have been
eliminated.
*9 Aug 1972 DATA DISK FW
Two new features have been added to data disk DPYOUT:
1) Overlapped mode, enabled by bit 0 of header word 0.
In this mode, a DPYOUT will return without waiting for
the transfer to be completed (although it will wait
for any previou transfer), enabling the program to
continue running. Header+2 will be set nonzero during
the transfer, and to zero after the transfer is complete,
so testing this is convenient (which should be done before
changing the buffer). A DPYOUT with a zero word count will
wait for a previous transfer without initiating a new one.
2) Double field mode, useful for text output. This is enabled
by bit 1 of header word 0 and will cause the buffer to be
transferred twice, once on each field. Header+3 should specify
the address of the line address command word, which should
contain the low-order line address as the third command in
the word. Bit 24 of this word will be set to the proper
field on each transfer. This feature cannot be used if more
than one low-order line address command is used.
*16 Aug 1972 AP NEWS (APE, HOT) ME
We have a line from the Associated Press (AP) over which we get
national and international news. The news that comes in gets filed
on the disk and saved for about 24 hours.
For use in reading the news, there are two programs on the system.
Type "R HOT" to have the news typed on your console as it comes in.
Type "R APE" to be able to selectively read the news that is on file.
The stories are catagorized by keywords; to read the news, you type
to APE whatever keywords you want to read about. To get help when
you are running APE, type "?" and carriage return at any point. For a
list of the keywords, see the file WORDS.SRT[AP,SYS].
For further information, see the file APE.ME[S,DOC].
*16 AUG 1972 SAIL MATRIX ROUTINES PACKAGE SHK
Following Matrix Routines Now Available:
1) Real Matrix Multiplication Routine
Multiplies two n-dimensional matrices (2-dimensional arrays)
(size m x n by n x p to get a m x p matrix)
or multiplies a 1-dimensional matrix by an n-dimensional matrix
or an n-dimensional matrix by a 1-dimensional.
MATMUL(REAL ARRAY A[a:b,c:d],REAL ARRAY B[c:d,e:f],REAL ARRAY C[a:b,e:f]);
multiplies A by B and places the result in C
(MATMUL(A,B,A) and MATMUL(A,B,B) are also valid.)
The only thing it won't do (I think) is multiply two 1-dimensional
matrices or n-dimensional arrays (n>2).
2) Array Clear Routine
MATCLR(REAL (or INTEGER) ARRAY A);
Zeros the array A.
3) Real Array Multiplied by a Real Constant
CONMUL(REAL ARRAY A,REAL B);
Multiplies array A by constant B and places the result in A.
All three are available by saying REQUIRE "MATMUL[4,SHK]" LOAD_MODULE;
*30 Aug 1972 UUO SHK
There is now a numerical listing of the UUO's - UUO.SHK[S,DOC]
*4 Sept 1972 AP NEWS (APE, HOT) ME
The AP news is now spooled once a day (at either 7am or 7pm). The
listing, which will be kept in the lounge, will indicate a file name
of "APNEWS[AP,SYS]".
*4 Sept 1972 FILDMP RPH
New program to list files in different formats. See FILDMP.RPH on UP,DOC.
*4 Sept 1972 NEW SAIL RHT
EFFECTIVE 1201 AM SAT, 26 AUG, A NEW SAIL SYSTEM WILL BE UP. ITS
SEGMENT WILL BE SAISG4. THIS NEW SYSTEM WILL INCLUDE SEVERAL NEW
FEATURES, INCLUDING USER REQUESTED INITIALIZATIONS, A LOCATION(X)
FUNCTION, AN IMPLICIT ARRAY: MEMORY[0:MEMSIZE], THE RUDIMENTS OF
MULTIPLE PROCESSES, AND MUCH MORE. WE WILL TRY TO HAVE SOME
DOCUMENTATION READY BY THE LATTER PART OF THE WEEK.
*22 Sept 1972 NEW SAIL RHT,JRL,KVL
THE NEW SAIL SYSTEM IS UP. THERE ARE MANY NEW FEATURES INCLUDING
MULTIPLE-PROCESSES WITHIN JOBS,EVENTS, A LIMITED FORM OF BACKTRACKING
BETTER FOREACH STATEMENTS, BETTER ERROR RECOVERY ETC.
THE DOCUMENTATION FOR THE NEW FEATURES IS NOT YET AVAILABLE, BUT
EXAMPLES OF THE GLORY OF NEW SAIL ARE CONTAINED IN PAPER.DOC[S,JRL]
NEWFEA.TXT[S,JRL].
THE NEW SYSTEM USES SAISG4, LIBSA4, HLBSA4, AND FOR YOU GLOBAL
MODEL HACKERS GLBS10.
NO SOURCE LANGUAGE INCOMPATIBILITIES ARE KNOWN, BUT OF COURSE
ALL PROGRAMS LOADED TOGETHER SHOULD BE COMPILED WITH THE
NEW COMPILER, AND OLD PROGRAMS SHOULD BE RECOMPILED BEFORE THEYY
ARE RELOADED.
OLD DUMP FILES SHOULD CONTINUE TO RUN FOR A WHILE UNTIL
SAISG3 IS DELETED.
SEND COMPLAINTS AND BUGS TO S,AIL OR SEE JRL,KVL OR RHT
A CURRENT LISTING WILL BE APPRECIATED. BETTER SERVICE
WILL BE GIVEN IF YOU ARE ABLE TO TICKLE THE BUG IN A SMALL
PROGRAM WITHOUT UNREADABLE MACROS.
FOR THE NEXT COUPLE DAYS WE WILL KEEP THE PREVIOUS COMPILER
AROUND AS SAIL.921[1,3], SAILOW.REL AS SAILOW.921, AND
GLBLOW.REL AS GLBLOW.921. IF YOU FEEL YOU ARE BEING
SCREWED BY SOME TERRIBLE BUG, YOU CAN, FOR INSTANCE,
SAY SOMETHING LIKE
R SAIL.921 <CR>
* FOO←FOO <CR>
* LOADER!
* SAILOW.921[1,3],FOO <ALT>
WHERE THE STARS ARE TYPED BY THE SYSTEM
THIS WILL GIVE YOU THE EFFECT OF DOING
LOA /COM FOO
USING THE PREVIOUS SYSTEM.
*22 Sept 1972 Upper Segment RAID and DDT TVR
RAID or DDT may be retrieved from the disk and run from an upper
segment. This means your core image may contain RAID at a much lower
cost (102 octal words instead of 12200 words for RAID). For details
see DEBUG.DOC[1,TVR]
*22 Sept 1972 AP NEWS (APE) ME
Multiple word keywords are now implemented in APE. To use them,
separate the individual words with spaces in your keyword exressions.
Also, to have only the first few lines of each story you select
typed out, type an "F" at the beginning of the story selection
line ("Read which one(s)?"). If you use both "F" and "=" on
the same line, the order is irrelevant. When you use the "F"
feature, you cannot spool or save the stories in a file.
For details on using APE, see the file APE.ME[S,DOC].
*12 Oct 1972 FAIL TVR
FAIL has been changed to stop at each error and give the option to
continue to next error, continue automatically or to edit. The edit
option will call SOS if there are line numbers and E if not (sorry
TECO hackers). Any complaints should be sent to TVR. If you don't
want to stop at each error, give FAIL the switch (F). The old
version is FAIL.OLD[1,3].
*21 Oct 1972 SAIL JRL,RHT,KVL
A new SAIL compiler has been put up to correct bugs reported in the
last few weeks. There should be no incompatibitlies with the preceding
compiler and programs compiled with the previous compiler should
be runable with programs compiled with the new compiler. Thus, there
is no need to recompile or even reload SAIL programs which have
been compiled since SEPT 21. If you do have a program which
compiled in the last month but doesn't now:
1. REPORT THE PROBLEM TO A SAIL HACKER - or send
a message to AIL, including such details as
where a copy of the offending program is and the
nature of the SAIL bug.
2. You may use the previous compiler by
R SAIL.102
* FOO←FOO
* <call>
where FOO is the name of your sail program and <call>
represents the typing of the CALL button (the stars are
typed by the system). The above sequence is equivalent to
the system level command:
COM /COM FOO
A note to users of multiple processes and matching procedures:
To initialize the multiple process environment the user
should include the following declaration:
EXTERNAL PROCEDURE MAINPR;
He should also make sure this procedure is called before
doing any process sprouting or matching procedure calling.
This is best done by using the REQUIRE INITIALIZATION feature
or by making:
MAINPR;
The first executable statement of your program.
This initialization will be compiled in, in the near future but until
then the above hack is required.
*3 Nov 1972 USER INTERRUPTS FW
The PC stored on a memory protect interrupt via the new-style
user interrupt system is now the exact PC stored by the hardware,
rather than being incremented as it used to be. This is consistent
both with the old-style (DEC) user interrupt system and with the
"ILL MEM REF AT USER xxxxxx" typeout. If you really care about
the exact value of this PC, consult me or the PDP-10 flowcharts,
as it is anything but consistent.
*3 Nov 1972 VIDEO SWITCH FW
The VDSMAP UUO now allows the 6 extra switch channels to be
addressed by setting bit 9 in the AC and putting the channel number
(0-5) in the TTY# field (11-17).
*8 Nov 1972 DUMPS REG
DART, a new program to back up disk files on tapes, is available.
system commands DUMP, RESTORE, TLIST, REWIND, BACKSPACE, ADvANCE all
run DART now, instead of DAEMON (CAUTION: new syntax in some cases).
See DART.REG[UP,DOC].
*8 Nov 1972 PROTECTION REG
The file access protection bit 400, which formerly had no
signifigance, now means 'Dump Never' in DART. All files that had
used this bit have been renamed without it.
*11 Nov 1972 SYSTEM REG
The job table JOBQUE in the system now contains either the positive
or negative value of the queue code of a job. Formerly, it had
always been negative.
*26 Nov 1972 FTP DCS
A new FTP has been installed with the following features:
1) You needn't type the MODE, TYPE, or BYTE commands at all
unless you want to change the defaults of S, I, and 36 resp.
Changing them is inadvisable since we only support those
settings. The defaults will be to the foreign host just
before the first data transfer.
2) RSTR clears any DATA connections that the FTP thinks it has
open. Sometimes it's wrong. If you get an indication from
FTP that a command is illegal because the DATA connection already
exists, do this command. It will go away when hacks in FTP
have been cured.
3) QUOT sends the rest of the line directly over the net, so you
can use it to execute other peoples commands which are either
nonstandard or just unsupported here. This won't do any good
if our end has to be involved in the operation, but it is good
to do things like STAT (status), and HELP at CMU.
See FTP.DCS[UP,DOC] for "complete" information about our FTP,
and NIC document 10596 for complete FTP protocol description.
*26 Nov 1972 MLISP2 DAV
A new version of MLISP2 has been put on the system. An old version
exists and will be around for one week. The main motivation for
the changes was to fix several serious bugs,
and to clean the language up prior to publishing a manual.
Changes:
(1) Variable names can no longer be literals (e.g. IF, FOR, ...).
(2) <IDEXP>, <ADDEDEXPR> have been subsumed by <EXPRESSION>.
(3) SPECIAL variables now must be declared at translation (PARSE)
time. To facilitate this, a new production has been added,
having the form: SPECIAL <identifier_list>
It is strongly suggested that all SPECIAL variables be
declared at the top of the program using this production.
(4) ?# in the syntax (to inhibit scanning) should now be just #.
It no longer takes up a syntax position.
(5) Setting variables in backtracking contexts is now done with
real LISP numbers (formerly machine representation).
A function CONTEXT() gets the current backtracking
context. X{CONTEXT()/10 + 3} ← etc. is now legal.
(6) THE FOLLOWING CHANGE IS TEMPORARY; WILL BE FIXED IN A DAY OR 2:
(*) Prefixes are more restricted in use; the syntax is
<PREFIX> <SIMPEX> as always, but IF, FOR, CASE, etc.
are no longer <SIMPEX>'s but are now full <EXPRESSION>'s.
Thus RETURN IF ..., PRINT CASE ..., etc. no longer work;
use RETURN(IF ..., PRINT(CASE ..., etc.
(7) The syntax of SELECT has been changed. Use SUCCESSOR instead
of NEXT, and FINALLY instead of IN WHICH CASE.
E.g. SELECT CAR(L) FROM L:'(A B C) SUCCESSOR CDR(L)
UNLESS NULL(L) FINALLY FAILURE()
(8) MLISP2.PRI now prints as it goes along, instead of at the end.
*3 Dec 1972 SAIL RHT
A new SAIL system will be put up at 2359 Thursday, 7 Dec 1972
This system will include
(1) Leap revisions by JRL. This means that any programs
that use LEAP should be recompiled.
(2) User required initializations will take place as
the first executable statement of the main
program (after outer block arrays have been
initialized). Programs that are loaded
with any .REL files which have user initializations
should have their main programs recompiled.
(3) Hooks into the user interrupt system have been provided.
Those interested should see Russ Taylor.
(4) A new kind of declaration has been provided:
CLEANUP proc1,proc2,proc3;
Where proc1, etc. are names of (parameterless)
procedures. The effect of a CLEANUP declaration
is to cause the named procedures to be called
whenever the block in which it occurs is exited,
whether by falling through the end, doing a go_to,
or by any other means. These procedures will be
called before any local arrays, sets, or lists are
released. The calls will take place in the order
specified. Thus:
BEGIN
INTEGER I;
PROCEDURE FOO;I←1;
BEGIN
INTEGER ARRAY X[0:I];
PROCEDURE BAZ;OUTSTR(CVS(X[I]);
CLEANUP FOO,BAZ;
:
COMMENT NOW WHEN THIS BLOCK IS EXITED, X[1] WILL
BE PRINTED OUT;
:
END;
END;
(5) various minor modifications to the process stuff.
The new segment is SAISG5.SEG, the libraries are LIBSA5.REL
& HLBSA5.REL.
The old compiler will be SAIL.D07[1,3]
*12 Dec 1972 AP NEWS (APE) ME
There is now a full search feature in APE. If you type in a word
that is not in the keyword dictionary, APE will tell you so and ask
you if you wish a search done. If you type Y (and <return>), the
news file will be searched for the specified keyword. If you type
"?", a (complete) summary of this feature will be typed out. If you
type anything else, no search will be done. You may interrupt a
search in progress by typing a carriage return or (on displays)
[ESC] I.
Note: Every word not in the dictionary requires a separate search to
be done.
Special note: Normally the whole news file is searched, taking 8 to
10 seconds, but if a non-keyword is the second part of an
intersection (eg, NIXON * JJ) or difference (eg, NIXON - JJ), then
only the necessary stories are searched.
*12 DEC 1972 PUB TES
PUBMAC.DFS[1,3] has been edited to correct an error in INDEX creation.
The old version is PUBMAC.OLD[1,3] for a few weeks.
The PUB manual has been deleted from the disk. The abstract remains
on PUB.TES[S,DOC]. Bound copies are in the SAILON file drawer.
In January, a new-SAIL PUB should be up with several obscure but
annoying bugs removed. Major restrictions and bugs now known:
SEND INDEX ⊂ ... ⊃ must be all on one line
See {PAGE X} must be followed by a non-word-break
such as ) , ; ] .
but definitely not a SPACE
NARROW, WIDEN, VARIABLE only work within a block -- not at top-level.
TURN OFF "}" inside blocks doesn't always work right (just for "}")
↓_abc_abc_abc_↓ seems not to work right in FILL mode someplaces.
Footnotes hack a lot, esp. if the page fills up during one.
*9 Jan 1973 NEWS LES
To get selective listings from the NOTICE file, say "R NEWS", which
will respond with an asterisk and expect a query such as
*March 15
This asks for all notices posted since the ides of March. If the day
is omitted, 1 is assumed; if the month is omitted, January is
assumed; if the year is omitted (as above) the last instance is
assumed.
*Nov<TAB>SAIL
is an example of a more general kind if query. This asks for all
notices since last November 1 that contain the string "SAIL"
somewhere in the subject field, with any case differences ignored.
The search could be made more specific by saying
*NOV<TAB>SAIL<TAB>DCS
which delivers only such notices written by Dan Swinehart.
If the query begins with a <TAB>, so that the date is omitted, then
all dates will be accepted. Similarly, the Subject field may be
omitted. A null query outputs the entire NOTICE file.
If you would like the output to be spooled, type "*" at the end of
your query, e. g.
*July 4, 1776 Sex*
If you would like to see title lines only, put a "-" at the end. You
can use both "*" and "-" together in either order.
If you forget all this, type "?<return>" and this notice will appear
magically.
*23 Jan 1973 AP NEWS (APE) ME
A new version of APE has been put on the system. The new APE
includes several changes to input formats, particularly where file or
spooler output is desired. The file APE.ME[S,DOC] has been updated
to explain all the new features in detail. You should read that
file, especially pages 4 to 12, before trying to run APE.
Alternatively, you can type a question mark (and carriage return) to
APE at any time to get help. Here are some of the main changes.
All input lines must now be ended with carriage returns (this
includes the "Y" to cause a search).
Input to APE from a command file is now possible (and easy/fun). The
command file should have the name APE.CMD to be most convenient, but
any file name is legal as is (almost) any text file format (SOS, TV,
E, etc.).
A "CHOOSE" feature has been added to allow you to see the beginning
of each story and then decide if you want to see the rest of the
story.
To get output to a file, you say
<filename> ←
followed by the usual story selection specification.
To get output to the spooler, you add an "S" to the selection line.
To avoid having stories typed out, for instance when they are being
spooled, add a "D" (meaning Dont type 'em) to the selection line.
[ESC] I will interrupt searches as well as typeouts now.
To be notified whenever a story comes in that matches a certain
keyword expression, precede the expression with a dollar sign ("$").
You can have APE typeout the keywords by which a story has been
categorized by adding a "W" to the selection line.
*28 Jan 1973 SAIL JRL
The item NIC returnedby INTERROGATE when the notice queue is empty,
is now the same as the item UNBOUND used in ? FOREACHES and
matching procedures.
i.e.
(NIC=UNBOUND) is TRUE
UNBOUND has a new name BINDIT since we felt the name UNBOUND had
erroneous connotations.
Both NIC and UNBOUND will be allowed for a while, but you should
replace them with BINDIT in your source-files.
Because of these changes programs using NIC, UNBOUND should be
recompiled.
ANY is now an item (though it can't be used in MAKE statements).
So you may now say:
ITMVR ← ANY;
ERASE A⊗B≡ ITMVR;
which will have the same effect as
ERASE A⊗B≡ANY;
ANY may be an element of a set or list.
All itemvars are originally initialized to ANY.
*22 Feb 1973 FAIL FW
Several changes have been made to FAIL:
1) CALL names are now automatically OPDEFed as their corresponding
CALLIs, so CALL is virtually obsolete. This is done dynamically
so it should always be up to date.
2) BEND, if given an identifier argument, now checks that argument
against the name of the block it ends, and generates an error
message if they mismatch. This can be used as a check on
BEGIN/BEND phasing.
3) The symbol $. is now available, which is like . except that it
refers to the location actually occupied by the current instruction.
This differs from . inside literals or if a PHASE is in effect.
4) Declaring a symbol both INTERNAL and EXTERNAL is now an error,
rather than causing FAIL to drop dead as it used to.
5) The test for too many BENDs now works properly.
6) Frequently redefined macros no longer eat up large amounts of core.
*25 FEB 1973 COPY RPH
New copy features:
1) If you use [p] instead of [p,pn] the current default pn is used.
2) XGPLIST, new command, equivalent to COPY XGP:←.
3) New switch for font selects, format:
/FONT{#n}=<filename>{.ext}{[<p>,<pn>]}
If no ext is given, FNT is assumed. If no p,pn is given
XGP,SYS is assumed.The #n is the font id number, if it is left
out, it is assumed to be 0.
4) New format for /EXTRA switch, if you use /EXTRA≡n.
(yes that's an equivalence sign), then n is the number
of scan lines to skip between text lines, not the number
of extra line feeds to insert.
*4 MARCH 1973 MLISP DAV
New version of MLISP is up; old copies will be kept on MLISP.OLD
and MLISPC.OLD on the system for a week or two. Differences:
1) A couple of lingering bugs were squashed.
2) A COMMENT expression was added so that MLISP will accept TV
format files. Syntax:
COMMENT <any characters except ; or unpaired " or %> ;
It may occur anywhere an expression may be used, e.g.
A + COMMENT A DUMB PLACE TO PUT IT; B + C
BEGIN
COMMENT A BETTER PLACE TO PUT IT;
A + B + C;
END;
The old %...% comment is still around as always.
3) An updated version of the LISP compiler is included in MLISPC.
4) Insignificant change: function names are printed horizontally
instead of vertically. Don't worry, PRINT is not screwing
up; that's the way it is supposed to work.
*5 MARCH 1973 PUB TES
THIS NOTICE IS ABOUT 70 LINES LONG, IN DECREASING ORDER OF
IMPORTANCE.
A NEW VERSION OF PUB IS UP TODAY WITH MANY REPAIRS AND A
FEW CHANGES. OLD VERSION IS PUB.OLD. SEE TES WITH PROBLEMS.
NOTE: UNTIL THE NEXT VERSION OF PUB IS UP, XGP USERS SHOULD
USE THE "DEVICE TTY" COMMAND OR THE "/T" SWITCH, ESPECIALLY
IF THE PAGE FRAME IS HIGHER THAN 53 LINES.
ABOUT 15 KNOWN BUGS HAVE BEEN FIXED (THANKS TO RKJ AT CMU FOR
A COUPLE OF STICKLERS). FOOTNOTES SHOULD WORK BETTER;
VARIABLE DECLARATIONS WORK; CROSS-REFERENCES OF THE FORM
"UNIT!" LABEL NOW WORK; AREA TEXT AND COUNT PAGE CAN ONCE
AGAIN BE DECLARED IN BLOCKS; ROMAN NUMERALS, MOD, MIN, AND,
GROUP BEGIN...END, INSERT...PORTION (WITH NO SENDS), AND SOME
OTHER THINGS NOW WORK WELL. TRY OUT YOUR FAVORITE BUG.
ONE BUG NOT YET FIXED: SOMETIMES PUB WILL LOOP
WHEN THERE ARE AREAS DECLARED THAT DON'T START AT CHAR 1.
REPORT OTHER BUGS TO TES.
CHANGES AND NEW FEATURES:
(1) TYPEOUT DURING COMPILATION RESEMBLES NEW SAIL'S.
NOTE: FILES LIKE 3INDE.PUZ AND 2CONT.PUG ARE GENERATED
FILES. PAGE 1 OF TV FILES IS NOT REPORTED BY PUB.
(2) THERE IS NO LONGER A BLANK PAGE AT THE BEGINNING OF LPT
DOCUMENTS.
(3) NEW COMMAND TO CIRCUMVENT CHANGE (2): "BLANK PAGE N" CLOSES
THE CURRENT PGE AND LEAVES N BLANK PAGES IN THE DOCUMENT.
THE PAGE COUNTER IS NOT AFFECTED. IF N IS OMITTED, 1 IS
ASSUMED.
(4) FOR TTY USERS: INSTEAD OF CURLY BRACKETS AND HORSESHOE
BRACKETS, YOU CAN NOW USE THE FOLLOWING CHARACTER PAIRS:
$( MEANS LEFT HORSESHOE (OPEN MACRO)
)$ MEAN RIGHT HORSESHOE (CLOSE MACRO)
]$ MEANS RIGHT BRACE (SWITCH TO TEXT MODE)
THESE ARE ONLY VALID IN COMMAND MODE AND NEED NOT BE TURNED
ON. ON THE OTHER HAND, THE FOLLOWING CONTROL CHARACTERS
ARE ONLY RECOGNIZED IN TEXT MODE AND MUST BE TURNED ON
(OTHER CHARACTERS MAY BE TURNED ON FOR THEM):
$[ MEANS LEFT BRACE (SWITCH TO COMMAND MODE).
(5) NEW FEATURE: TURN ON/OFF TAB FOR "<CHARACTER>" ;;
AS PUB READS THE MANUSCRIPT, IT SUBSTITUTES FOR EACH "TAB"
FROM ONE TO EIGHT SPACES. THIS COMMAND CHANGES PUB SO THAT
IT SUBSTITUTES THE SINGLE CHARACTER <CHARACTER> INSTEAD.
THE COMMAND MUST BE FOLLOWED BY TWO SEMICOLONS OR ELSE IT MAY
NOT TAKE EFFECT ON THE NEXT LINE. IF IT IS DECLARED IN A BLOCK,
THE "END" OF THE BLOCK MUST BE FOLLOWED BY TWO SEMICOLONS OR
THE ORIGINAL MEANING OF TAB MAY NOT REAPPEAR IN TIME FOR THE
NEXT LINE.
(6) SINGLE SPACE, DOUBLE SPACE, AND TRIPLE SPACE NOW BREAK BEFORE
CHANGING THE VALUE OF SPREAD, SO THEY TAKE EFFECT IMMEDIATELY.
SUGGESTIONS AND WARNINGS:
(1) "COUNT PAGE" INITIALLIZES THE PAGE COUNTER TO NULL. IT
GETS STEPPED TO 1 THE NEXT TIME A PAGE IS OPENED.
THIS IS WHY THE TITLE PAGE HAS A BLANK PAGE NUMBER.
(2) AREA RE-DECLARATIONS DO NOT TAKE EFFECT UNTIL THE
CURRENT PAGE IS CLOSED.
(3) IF YOUR DOCUMENT IS LONG, IT IS HELPFUL TO HAVE A SOURCE
FILE FOR EACH CHAPTER, AND ON EACH DEBUG RUN TO "REQUIRE"
FROM THE MAIN MANUSCRIPT FILE ONLY THOSE CHAPTER FILES THAT
YOU ARE TESTING. GLOBAL MACROS SHOULD APPEAR IN THE MAIN
FILE OF COURSE.
THE MANUAL HAS NOT BEEN CHANGED, BUT IT IS BACK ON THE DISK
FOR THE BENEFIT OF NET USERS (SEE PUB.TES[S,DOC] FOR DETAILS).
*9 MARCH 1973 MLISP2 DAV
A new version of MLISP2 is up. Old version is on SYS:MLISP2.OLD for
a week or so. There have been extensive changes, but most are additions
so that programs shouldn't have to be altered. The changes:
1) The code generated in the syntax part of productions is somewhat
shorter and more efficient.
2) There is now a way to prevent an identifier in the syntax part of
a production from being turned into a LITERAL, namely precede it
with a quote mark (').
Example: {IF ...}
makes IF a LITERAL, as well as generating code to check for it,
but {'IF ...}
just generates the code to check for it. In fact, any token
of type identifier, number or delimiter may be included in
the syntax by preceeding it with the quote mark; previously
only delimiters could be so included.
3) Numbers in syntax patterns MUST now be preceeded by the quote
mark; previously they could occur alone. This should not
affect anyone, since I don't know of anyone who uses numbers.
4) The syntax of FOR, WHILE and UNTIL loops has been generalized
slightly: `WHILE' and `UNTIL' are now interchangeable:
Examples: FOR NEW I IN L DO NIL UNTIL I = X;
FOR NEW I IN L DO NIL WHILE I = X;
DO PRINT(X) UNTIL A=B;
DO PRINT(X) WHILE A=B;
WHILE A=B DO PRINT(X);
UNTIL A=B DO PRINT(X);
In addition, the code generated by COLLECT in all of the loops
is now more efficient (generates an NCONC in some cases, rather
than an APPEND).
5) The DEFINE expression and the vector operator (⊗) have been
added to MLISP2 to make it more compatible with MLISP
(c.f. the MLISP manual). However, the DEFINE
expression is not quite as general: only prefix and infix
functions may be DEFINEd, whereas MLISP would allow any
symbol to be DEFINEd.
Syntax: DEFINE <dterm>, <dterm>, ..., <dterm> (at least 1)
<dterm> ::= <identifier> PREFIX [<token>] [<integer>]
<identifier> <integer> <integer>
<identifier> <token> [<integer> <integer>]
where [] means optional.
The integers are binding powers for the function; only one
binding power, the right binding power, needs to be specified for
prefixes. The <token>s are identifiers or delimiters which
may serve as an abbreviation for the function.
Examples: DEFINE NOT PREFIX;
DEFINE NOT PREFIX ¬;
DEFINE NOT PREFIX 1000;
DEFINE PLUS + 350 400;
6) ONLY FUNCTIONS THAT ARE EXPLICITLY DEFINE'D TO BE PREFIXES MAY
NOW BE USED AS PREFIXES (I.E. WITHOUT () AROUND THEIR
ARGUMENT AND WITH THE VECTOR OPERATOR ⊗)!!! NO MORE USER-DEFINED
PREFIXES UNLESS EXPLICITLY DEFINE'D!!!
*16 March 1973 FREEFOROL processes Text Macros LES
Freeforol may be used to generate form letters or other fill-in-
the-blanks text. It is described in FREEFO.LES[UP,DOC].
*21 March 1973 WHERE Command TVR
Typing WHERE <programmer> will print the status of such jobs
currently logged in. For example, WHERE NET,GUE will WHERE all
network guests. Like WHO, this also clobbers your core image.
*27 March 1973 TV ↔ E switching DCS and FW
During transition from TV to E, there will be features available
in one which are unavailable in the other. To ease the switch,
we have installed complementary extend-mode commands: "ETV"
in TV, "TV" in E. Executing it will switch editors (writing
current page first, if necessary). The new editor will be
editing the same file, on the same page and line, with the same
protection (readonly or readwrite).
The "TV" command in E is only a special case of a much more
glorious "RUN" feature. For more information see TV2E.FW[UP,DOC].
*4 April 1973 TALKER, FTP DCS
In response to the Site: prompt, one can type a site name or
a (decimal) site number -- one way to try to find out the site
name of an otherwise Anonymous site.
*5 April 1973 PUB TES
Users of Jerry Agin's underground figure macros note:
"MACRO SECREF" et al have a bug which was ignored by old
versions of PUB but now result in the error message:
"EXTRANEOUS { IN COMMAND LINE"
To fix this, remove both the { and } from these particular
macros. E.G.:
.MACRO SECREF ⊂ "Section " ;{SECTION! LBL} ⊃
should be:
.MACRO SECREF ⊂ "Section " ;SECTION! LBL ⊃
If you like, this can be abbreviated:
.MACRO SECREF ⊂ "Section!" LBL ⊃
which did not work in old versions but now does!
*8 April 1973 APE, AUTOMATIC NOTIFICATION ME
If you wish to be notified each and every time an AP story comes in
that matches a given keyword expression, type the expression to APE
and precede it with a dollar sign ($). For example,
$JUPITER*PIONEER
When a story comes in that matches the expression, you will be sent a
message which you will get when you login. Also, if you are logged
in at the time the story comes in, the message
*** AP STORY FOUND ***
will be typed on your console.
To see what automatic notification requests you currently have, type
the keyword expression "$" (just dollar sign) to APE. To be able to
delete these requests, type the expression "$$". Each request will
expire two months after it is submitted. At that time you will get a
message indicating that the request has expired.
*9 April 1973 APE, AUTOMATIC NOTIFICATION ME
Here are some notes on using Automatic Notification for AP stories.
Automatic notification (AN) is intended to be used for two main
purposes. 1) If you are expecting an urgent story to come in at any
moment, and you want to be notified as soon as it comes in (assuming
you are logged in), automatic notification saves you the trouble of
running APE every half hour to find out if your story has come in.
2) If you are expecting a story to come in some day, but you don't
know when, then AN saves you the effort of running APE every day, if
you wouldn't otherwise do so.
If you find you are being notified about the same kind of story
several times a day, and if the stories are not particularly urgent,
then you will probably find that the normal use of APE, possibly
using a command file (see previous section) will be more convenient.
Also, the more AN requests there are, the more work the continually
running special AP programs have to do. However, you are free to
choose the method of using APE that best fits your purposes.
One final note on AN: When you get a hit from an AN request, the best
way to use APE to read the story is to type in the expression
(possibly using a command file) that got the hit. Alternatively, you
can type in the sequence number of the story found, but this is
liable to give you an extra story with the same sequence number. You
can combine these two methods and type something like (say)
"#35*CHESS", if CHESS was the AN request getting a hit on story #35.
If a story you have been notified about is more than a day or so old,
then you will probably not find it with APE. However, since the news
is spooled every day, you should be able to find old stories in the
stack of listings in the lounge (unless you are a remote user!). For
even older listings, see ME.
For more details, see APE.ME[S,DOC], special features 10, 11 and 12.
*11 APR 1973 INFO REM
To have access to the REM information system, type "R INFO".
The general form of command is "R INFO;<FILNAM>;<PRETYPE>"
if you are an expert and know what that means.
*11 APR 1973 XGP REM
The currently most-useful program for printing documents on
the Xerox Graphics Printer is MRPP3[XGP,REM] (Maas Research Paper
Plotter program, version 3) which allows you to change fonts anywhere
(in the middle of a word if you wish), do paragraph justification and
centering, super-scripts above sub-scripts, nicely-formatted tabular
listings, etc. The latest documentation is usually posted on the
bulletin board near the machine room, however if you want you own
copy here is what you do:
.RU MRPP3[XGP,REM]
FOO.LST←MRPP3.WRU[XGP,REM]
then when it is all finished and you see XG @QQXGP.RPG in your line
editor, hit carriage return, wait for the device to be available if
it is busy, then collect the approximately three pages as they come
out of the XGP (after the 2 8/10 pages of chard that comes out ahead
of each listing).
*9 May 1973 FAIL FW
Several changes have been made to FAIL:
1) The CALLI opcode definer has been extended to include all
UUO opcodes. Thus all existing system calls now have their
mnemonics predefined in FAIL. Again, this is dynamic, so
it will continue to be up-to-date with no further changes
to FAIL itself.
2) A couple of new symbol constructs are available. One is
SYM::, which defines SYM as a half-killed label, just
as in SYM←←EXPR. Also, SYM↑ may be used anywhere SYM is
legal and will make SYM either EXTERNAL or INTERNAL,
depending upon whether it is defined in the program.
Thus SYM↑:: makes SYM a half-killed internal label, etc.
(N.B.: Any symbol which has been declared EXTERNAL will
be converted to INTERNAL if and when it is defined.)
3) The PRGEND statement (from MACRO) is now available to
allow multiple independent programs to be assembled
within a single file. This is particularly useful for
libraries. PRGEND behaves exactly like END, and similarly
causes a complete assembler restart, except that I/O
is undisturbed and assembly continues.
*19 MAY 1973 MLISP2 DAV
Two new runtime functions have been added to MLISP2:
PEEKVAL(integer) - peeks at the integer'th token ahead without
advancing the scanner, and returns its value
PEEKTYPE(integer) - peeks at the integer'th token ahead without
advancing the scanner, and returns its type
The existing runtime function PEEK is equivalent to
PEEKVAL(1) CONS PEEKTYPE(1)
The MLISP2 manual/report is now available as AI Memo 195.
*22 May 1973 MAIL SEND REMIND CANCEL BH
The SEND command now sends messages to users' consoles, and the
MAIL command sends messages to be received on login (what SEND
used to do). There is also a REMIND command for delayed messages,
and a CANCEL command to delete reminder requests. All these
commands are fully documented in MAIL.BH[UP,DOC].
*1 JUNE 1973 MLISP2 DAV
New MLISP2 system up. Features:
(1) An automatic accounting feature has been added to MLISP2's
version of LAP. Any user (or system) function compiled
into LAP and read in will be included in the accounting
system. The accounting system keeps track of the total
number of times a function is called. (It adds two
instructions to every function LAP'ed in:
AOSA .+1
0
<user code>
). The counts may be examined, set, and reset. NOTE:
interpreter and interpreted functions are not accounted;
only functions LAP'ed in.
(2) To facilitate the above feature, two new runtime functions
have been added:
GETCOUNT(atom) - takes a function name as its argument
and returns the number of times the function
has been entered.
PUTCOUNT(atom, integer) - sets the number of times the
function has been entered to the integer (usually 0).
*2 Jun 1973 MAIL SEND REMIND CANCEL LATER GRIPE BH
The following nifty features have been added to the MAIL program:
1. The switch /D on SEND, MAIL, or REMIND will add a line to the
message containing a list of the destinations. If your list
included a file reference, both the file spec and its contents
will be listed. Try SEND/D . FOO etc. for the format.
2. The REMIND system will now run an arbitrary program for you
if you use the command
.LATER <filespec> <core> <datime> <count>
default device DSK (the only other option is SYS), default
extension DMP. Datime and count are like REMIND. Core is
an optional argument in real angle brackets specifying an
initial core allocation and/or start address offset as in
the SWAP UUO, in the format <99K,+77> (decimal and octal).
3. There is an RPG feature, which reads commands from QQMAI.RPG;
see MAIL.BH[UP,DOC] for a full description of this and
related useless features.
4. The GRIPE command exists to vent your anger at Ralph's
malfunctions.
5. REMIND/M or REMIND/S for mail only or send only.
6. If you are logged in when someone MAILs you a note, you
get a one-line message ;; →→→ MAIL FOR ppn ←←←. This
is also true for mail sent over the net via FTP.
7. If you type in a long message and get screwed because
of an error in the destination list or something, you
can REENTER and edit your command.
All the gory details are in MAIL.BH[UP,DOC], which you
should be sure to read especially if you want to use the
LATER or RPG features.
*4 Jun 1973 MAIL SEND REMIND LATER CANCEL GRIPE BH
The destination list is now checked by MAIL and friends
before asking for the message. Invalid destinations (i.e.,
non-existent users) get a message; if there are no valid
destinations in the list, the program exits. Note: SEND
does not check for logged-in users until ater you enter the
message, as before; only the existence of a file directory
is checked ahead of time.
*19 June 1973 WHOLINE TIME DAYTIME ESCAPE X ESCAPE Q ME
A new wholine, new TIME and DAYTIME commands, two new ESCAPE
commands and some new TTY monitor commands are up.
------
The new wholine contains one new time on the user line; this time,
called XTIME and followed on the wholine by an X, is the incremental
run time for the given job since the last teletype interaction and
is shown in hour, minutes, seconds and ticks. The number after the
single quote is ticks. The single quote itself is a right quote if
automatic resetting of XTIME is enabled and a left quote if
automatic resetting is inhibited; see [BRK] X below.
The XTIME is reset whenever the job comes out of teletype input wait
and whenever the job is caused to run by a monitor command other
than CONTINUE. Thus the RUN, GET, SAVE, SSAVE, CORE 0, FINISH,
START, REENTER, DDT and all the RPG monitor commands cause XTIME to
be reset; and if the job goes into IOWQ waiting for input from the
teletype, then the XTIME will be reset when the job is awakened by
teletype input. However, note that if you have typed ahead and the
job reads characters from the teletype without having to wait, then
your XTIME will NOT be reset. (Monitor commands that run the job
will reset XTIME whether or not you have typed ahead.)
------
In order to allow flexible use of this new incremental run time,
some new ESCAPE keyboard commands have been added along with some
new monitor commands.
[BRK] X inhibits automatic resetting of your XTIME. Thus this
allows your XTIME to continue accumulating indefinitely. It will no
longer be reset by coming out of tty input wait or by monitor
commands that run the program.
[ESC] X undoes the effect of [BRK] X, thus causing XTIME to resume
being reset at the normal times.
Note that neither [ESC] X nor [BRK] X causes any change in the
current XTIME.
[ESC] 1 X causes your XTIME to be reset and then inhibits automatic
resetting of XTIME.
[BRK] 1 X causes your XTIME to be set to your total run time and
then inhibits automatic resetting of XTIME.
------
Four new monitor commands have been added to allow users who are not
on displays to get the effects of the above ESCAPE commands.
TTY UPDATE does the same thing as [ESC] X, ie, enables automatic
resetting of your XTIME.
TTY NO UPDATE does the same thing as [BRK] X, ie, inhibits automatic
resetting of your XTIME.
TTY TIME does the same thing as [ESC] 1 X, ie, resets your XTIME and
then inhibits automatic resetting.
TTY NO TIME does the same thing as [BRK] 1 X, ie, sets your XTIME to
your total run time and then inhibits automatic resetting.
------
The TIME command has been modified to print out five labelled
quantities. (TIME still takes an optional job number argument.)
Four of these are times, which are printed in hours, minutes,
seconds and ticks (the number after the single quote is ticks).
TOTAL is the total run time for the specified job.
INCREMENT is the old incremental run time that the TIME command has
always printed and reset. When you request the TIME for your own
job, this time is reset (like it always has been). When you request
the TIME for another job, you do NOT cause his incremental run time
to be reset.
XTIME is the new XTIME which is explained above. The XTIME is not
changed at all by the TIME command.
WAIT is the time the job has spent waiting for the system. This
includes actual time running as well as time waiting to be run and
time waiting for disk I/O, etc, but does not include time spent in
IOWQ waiting for teletype input, nor time in STOPQ, NULLQ or INTWQ.
This time also appears on the wholine with the label W.
KCS is the total number of kilo-core-seconds you have used since you
logged in. This number is incremented by your core size (in K) for
every second of runtime.
------
The DAYTIME command now takes an optional job number argument, eg,
"DAYTIM 22". If the job number is zero (eg, "DA 0"), then your own
job number is used. If there is an argument, then three times are
printed: the time of login of the specified job, the time the
specified job was last run, and the current time. The DAYTIME
command with no argument does the same thing it used to do, ie, give
you the day, date and time.
------
[ESC] Q now gives you the wholine for the next job with the same
programmer name as the job on your current wholine, or as your own
job if you have no wholine up.
[BRK] Q does the same thing as [ESC] Q except that it searches the
job table backwards.
*2 July 1973 NOTICEs ME
The news file NOTICE[UP,DOC] is now in E/TV format (and should be
kept that way). Each writeup is on a separate page so that E's
directory page shows the title lines from all the writeups. This
enables the NEWS program to run much faster.
*12 July 1973 SYSTEM NEWS PROGRAM ME
A new NEWS program is up. It makes use of the E/TV directory page
of the NOTICE file to do random access to individual writeups after
searching only the directory page. Each writeup must now be on a
separate page, with the title line being the first line of the page.
The NEWS program will now run much faster than before because of
this new design.
Also, three new features have been added.
[ESC] O (control-O on ttys) is undone just before each writeup is
typed out; so you can flush the remainder of a single writeup by
typing [ESC] O or control-O.
[ESC] I interrupts the current search, thus flushing a whole series
of typeouts and returning you to the point of typing in a line.
This also flushes any spooler output you may have requested.
Finally, when you spool a collection of writeups, the title line of
each writeup will be typed out on the console.
*12 July 1973 MAIL SEND REMIND RCV BH
Several new features in the MAIL system:
1. The RCV command to edit your mail message by message. Type
RCV for your own mail, RCV prg or RCV prj,prg or RCV prj,* for other
people's mail, or RCV #filename for an arbitrary file in mail format,
i.e., messages start with a line starting with "∂". For each message
you can save, delete, spool, copy, edit, etc. it. The program is
more or less self-explanatory, but you can read RCV.BH[UP,DOC] if you like.
2. The SEND command has a new switch, /W (for Where), which tells
you ppn, tty, jobname, queue, and all that stuff for all consoles which
get the message (good for seeing if the recipient is using E and lost it).
3. There is a /U switch for undefined users, to allow mail to be sent
to people not known to the system. It still warns you they're unknown.
4. If you start a one-line message and decide you need more lines
after all, end the command line with a linefeed and you'll be allowed
to continue the message
5. Filenames in both MAIL and RCV may use the ↓...↓ notation for
non-alphameric chars. Also, there is a special abbreviation for message
filenames: use ∂ for your own mail file, ∂prg or ∂prj,prg etc. for
others; this implies a default of xxx.MSG[2,2] but you can specify a
different extension or ppn.
The current state of the MAIL program is documented in MAIL.BH[UP,DOC].
*23 JULY 1973 SAIL RHT JRL HJS KVL
The following are the changes made to SAIL. These will be incorporated
in the system as of FRIDAY evening, July 27.
I. RELEASE -
RELEASE now takes a second (optional) argument, the close inhibit
bits. The implied declaration is
EXTERNAL PROCEDURE RELEASE(INTEGER CHAN,INHIBIT);
If bit 35 (decimal value 1) is on in INHIBIT, the output
file of this channel will not be closed. If bit 34
(decimal value 2) is on the input side of this channel will not
be closed.
If you do not specify any INHIBIT field, SAIL will assume
an entry of 0. Thus,
RELEASE(chan) is identical in effect to RELEASE(chan,0)
Any program containing RELEASE must be recompiled.
II. BUCKETS
You can now specify the size of the local model LEAP hash table
used via
REQUIRE n BUCKETS;
The next higher power of two will be used as the hash table size.
The size will be 2↑m where, m is the smallest positive integer
such that 2↑m ≥ n. The default value for n is 512.
If several separately compiled programs are loaded together
the largest number of BUCKETS required will be used.
This should enable people who use items(for processes etc)
but few associations, to have smaller core images. Similarly
by requiring a large n, associative operations will, in general
be speeded up.
III. MACROS
Several changes have been made to the macro system. This includes new features
as well as some changes to existing features. If the changes cause programs to
perform erroneously, there exist means to override these changes. If problems
still persist, contact HJS.
A. Changes:
1. DEFINE reverts to its old meaning - i.e. it is used to both declare the name
as a macro name and to assign a piece of text to it. Any subsequent redefi-
nition has the effect of suspending the previous definition until the end of
the block within which the new definition occurs. At the end of the block
the name reverts to its previous definition. Currently the mode of
operation is that all subsequent DEFINE's with the same name act as a
redefinition which remains in effect for the lifetime of the macro name
(where lifetime is defined to be the block where the name was first
declared). REDEFINE is a new construct that has been added to allow such
redefinition. In order to enable current programs using macro redefinition
to work the following statement should be inserted in the beginning of the
program:
LET DEFINE=REDEFINE;
This modification will cure the DUPLICATE IDENTIFIER DECLARATION error
message that will occur when two DEFINEs with the same macro name are seen
in the same block. Otherewise, the second DEFINE should be replaced by
REDEFINE.
2. IFC reverts to its previous meaning that macros are expanded in the false
part of conditional compilation. IFCR is a new construct that has been
added to allow suspension of macro expansion in the false part of
conditional compilation. In order to use this feature, one simply uses
IFCR instead of IFC. Users who have been accustomed to macros not being
expanded in the false part of conditional compilation can have that effect
by inserting the following statement in the beginning of the program:
LET IFC=IFCR;
B. New Features:
1. NOMAC macro_name is used to inhibit expansion of macro_name when it is
scanned. For example if Z has been defined to be a macro name in an outer
block and in an inner block it is desired to use Z as an integer then it is
declared as:
INTEGER NOMAC Z;
2. EVALDEFINE macro_name is used whenever a DEFINE is appropriate and has the
effect that the macro_name is expanded. For example, suppose X has been
defined earlier in the program to be a macro having VAR as its textual
value, then the following statement
EVALDEFINE X=⊂VARIABLE⊃;
has the effect that VAR is defined to be a macro name having VARIABLE as its
textual value rather than X be redefined to VARIABLE.
3. If a macro is called with less actual parameters than called for by its
original definition, then the missing ones are treated as if they had been
given the null string as a value.
4. ASSIGNC is used to assign values to macro formals. The syntax of the
statement is identical to that for DEFINE. This feature can be used to
simulate a macro call by value when the value is a compile-time expression.
For example:
ASSIGNC A=A; where A is a formal parameter name.
Another use of the ASSIGNC construct is to allow local temporary variables
in macros. This is particularly useful when defining recursive macros.
5. When a macro is defined and the list of formal parameters is given, the
various formal parameter names can be separated by commas or semicolons.
This is useful in case a user wants for documentation reasons to separate
the names of the macro parameters which are used as formals from those to be
used as local variables.
6. REDEFINE and EVALDEFINE act just like DEFINE when the macro name has not
been previously encountered.
IV. EXPONENTIATION change
The code for exponentiation has been changed somewhat. int↑int will now not
lose if the exponent is negative. However, the type of the expression that
results is a little strange:
int1 int2 int1↑int2
integer integer variable real
integer const < 0 real
integer const ≥ 0 integer
in other words, the compiler will create an integer expression (by
producing successive multiplies) when it can do so. It cannot know
that an exponent variable will be >0, however, so it must assume real.
Sorry..... See Jim Low if you are confused about this.
V. WHAT TO DO
If your programs dont do a RELEASE or any exponentiation, you can probably
win by reloading. Otherwise, you must recompile. If you think you have
a bug, try compiling with SAIL.724[1,3] & loading with SAILW5[1,3]. If
your program works then, but doesn't work now (and the difficulty doesn't
stem from the changes mentioned here), then congratulations! You may indeed
have found a new SAIL bug. See the appropriate person(s). Summary of old
& new files:
OLD NEW
compiler SAIL.724 SAIL.DMP
segments SAISG5.SEG SAISG6.SEG
SAISG5.OLD (for DCS)
GLBS11.SEG GLBSG6.SEG
lower rel file SAILW5.REL SAILOW.REL -- /Y to loader will do
(load first to att. GLBL11.REL GLBLOW.REL
to segment)
libraries LIBSA5.REL LIBSA6.REL
HLBSA5.REL HLBSA6.REL
Thus, to use the old(er) SAIL to get the effect of TRY FOO.SAI, type:
R SAIL.724<cr>
FOO←FOO<cr>
↑C
R LOADER<cr>
SAILW5[1,3],FOO<alt>
START<cr>
*1 June 1974 FINGER LES
To get a listing of the full names and locations of all users
currently logged in, say "FINGER" or just "FING". It works even if
you're not logged in. The column labelled "IDLE" gives the number of
minutes since the job was last run (blank if less than 1).
If you say "FING <pn>" you will get information only about jobs
logged in with the given programmer name (1 to 3 characters). If you
say "FING <string of characters>" it gives you information about the
person whose first and/or last name begins with the given string. If
the string matches more than one person, FINGER gives you the list of
people.
If the person you specify is not logged in, FINGER tells you when he
last logged out (normally) and prints his PLAN file, if any (see MAIL
program description). The logout information will not be up-to-date
if he used the "K/F" command or if he quit following a system crash.
*7 Aug 1973 SEND MAIL BH
If you SEND a message to a display (III or DataDisc) terminal,
the SEND program now examines the monitor tables for that
terminal to try to decide if the recipient is running a program,
such as E, which unnormalizes the page printer, thereby possibly
hiding or losing the message. If the page printer is not
normalized (any piece of paper or glass other than PP 0 active,
any console commands of the <esc> E, etc., family executed, or
the lines/glitch or glitches/page count not normal), the sender
is warned with a message including the ppn, job name, queue, etc.
This information may help in deciding whether or not to play it
safe by REEentering and changing the SEND to a MAIL. The only
display program I know of which is not caught by this scheme is
WHO on a DataDisc, but that's not too bad because the message
generally shows up when you exit.
Also, it is now possible to specify an expiration date for
NOTICE.TXT messages by typing the command in the form
MAIL * → date
where "date" is as in the REMIND command (just date, no time).
The message will be deleted at midnight of the specified date.
This is done by putting a delayed program request for a
program called EXPIRE in the reminder queue with you as the
requestor, so you'll be told about it by CANCEL. Note that
this feature is independent of the automatic deletion after
two weeks, which happens whether you specify an expiration
date or not.
*13 Aug 1973 RCV BH
The Z option editor in RCV now allows <ctrl>D at the end of a line to
concatenate it with the next line, and <meta><cr> in the middle of a
line to break it in two pieces, as in E. In line insert mode, altmode
will leave line insert mode without inserting the text you were typing
on the line with the altmode (unlike <ctrl><cr> which inserts the text
and then leaves line insert mode.) Also, the editor is cleverer about
ignoring unknown break characters and about neatness of its output on
your display screen.
Also, there is a new option, ! (exclamation point), which saves
the current message and all remaining messages in the current file, and
then goes on to the next message file.
Also, when a message overflows the buffer, RCV will break it at
a line boundary (unless the line which overflows is incredibly long),
and you are alowed to edit it with the Z option.
SINGLE-LETTER TYPEIN (OPTIONS, Y OR N) MUST NOW BE FOLLOWED BY <CR>!
Accordingly, <cr> as an option again means S. In Y or N situations,
anything other than Y<cr> means no. (Lower case Y is ok.) Typing ? in
response to a question still does not require <cr>.
*14 Aug 1973 LOADER and RPG TVR
Several changes were made to the loader and RPG.
1. The loader has been speeded up by separating globals and locals
within the symbol table. The improvement will be noticable to those
who use many externals while it will be only marginally faster for
those using only one REL file.
Globals (i.e. externals) are now kept in the bottom of the
symbol table rather than interspersed with locals. This loses
information about with program the global came from, however
neither DDT nor RAID use this information. It seems to be a small
price to pay for the increase in speed.
2. A feature has been added to the loader to save a dump file when
loading is complete. This is invoked by the switch /DUMP. The name
given the the DMP file is that of the first REL files loaded
(excluding DDT) unless one is given explicitely as:
LOAD BAZ←FOO/DUMP
which loads the file FOO and saves it as BAZ.DMP.
3. A new switch /NOSAISEG suppresses the loading of the SAIL
segments and instead loads from the SAIL library. This is
recommended for programs sept on [1,3] as SAIL segments tend to
eventually become obsolete.
4. RPG will now accept negative arguments in loader switches, for
example: %-S.
5. The LOADER will now treat % as /.
If you have any problems, first try LOADER.OLD[1,3]. If that works
while the new one does not, please mail me (TVR) a note.
*14 Aug 1973 FIND DCS
New FIND up.
It is now a system command "FIND".
See FIND.TES[UP,DOC] for complete description.
The syntax has been changed to:
FIND [EXACTLY] key [ [IN] file], where brackets indicate options.
EXACTLY indicates the keyword search of old FIND -- character
for character match, with no template searching.
Otherwise, the template search will be carried out, as described
in the full documentation. The EXACTLY search is a little
faster.
Default file name is the current phone directory. The specification
PHONE will also yield this directory.
Unless you are using the default file, if the key is a multi-word
key, it must be delimited by " ... " or ` ... ', or separated
from the file name by "IN", which is not optional in this case.
Undelimited multi-word keys will have each string of one or more
spaces and tabs replaced by a single space, even in EXACTLY mode.
You can search for a delimited string with either kind of quote
in it by delimiting the string with the other kind (e.g.,
" ... ` ... ", or ` ... " ... '.
You can omit the closing "]" in a file name.
Examples:
FIND JMC
FIND ANY MCCARTHY
FIND ANY TARGET IN COMLIN.FAI
FIND ANY "TEMPLATE ... TARGET" COMLIN.FAI
FIND TARGET BYTE IN COMLIN.FAI
FIND LOMA VERDE
*14 Aug 1973 PUB XGPUB RKJ
PUB files may be output on the XGP.
Fonts may be specified by using the FONT declaration. Its format is
FONT <fontid> <fontfilename>
where fontid is a single digit 1-9 or letter A-G (upper or lower case
are equivalent). Fontfilename is the name of the file on which the
font is stored. The default extension is FNT, the default PPN is
[XGP,SYS]. The only available device is the disk; no device field
may be specified. To select a font, turn on the character "%" (or
turn on some other character for its function). %<fontid> causes the
specified font to be used for subsequent output. %* has the effect
of undoing the previous font selection (one level only). If you
specify XGP output (either by DEVICE XGP or by /X in the command
string), you must specify at least one font with a FONT declaration.
Font 1 is used initially.
A font may also be selected in command mode with the command
SELECT <fontid>
which breaks and selects the font for the next text line. Font
selection obeys block structure. The effect of %* in the vicinity of
END's which imply font changes is undefined.
For the benefit of macros whose effect depends on whether or not
output is to the XGP, there is a read-only variable XCRIBL whose
value is TRUE iff output is to the XGP. FONT and % are no-ops (FONT
a time-consuming one) if output is not to the XGP.
The variable !XGPLFTMAR should be set to the desired left margin in
raster points; its default value is 200. The variable CHARW is used
as the multiplication factor to convert to XGP raster units those
variables (e.g., line width) which are specified in characters. Its
default value is 16.
PUB produces a file QQXGP.RPG containing XSPOOL parameters such
that executing the monitor command
XS @QQXGP.RPG
will list your output properly. The PUB variable !XGPCOMMANDS may
be set to include any extra switches, etc., you would like sent to
XSPOOL; the text in that variable will be included in the RPG file.
The XSPOOL command is loaded into your line editor if at a display.
The following PUB features are not available: multiple columns
and the ∞ feature. Use of these will not bomb out but
the results won't be what you wanted, either.
Note: PUB currently takes no notice of font heights. All vertical
spacing and vertical filling is done by line count.
*5 SEPT 1973 NETWORK NETWRK TALKER TELNET FTP RPH
THE PROGRAMS 'FTP' AND 'T' (TELNET) ON [1,3] MAY NOW BE INVOKED BY
SYSTEM COMMANDS:
FTP RUNS THE PROGRAM 'FTP.DMP[1,3]'
TN RUNS THE PROGRAM 'T.DMP[1,3]'
TELNET RUNS THE PROGRAM 'T.DMP[1,3]'
YOU MAY FOLLOW THE COMMAND BY WHAT YOU WOULD NORMALLY TYPE TO THE
PROGRAM. THAT IS A SITE NAME AND THEN A COMMAND. IF YOU TYPE MORE
THAN THE SITE NAME YOU MUST FOLLOW IT BY A ";". IF YOU WISH TO TYPE
AN ALTMODE TO THE PROGRAM, YOU MAY USE $ (DOLLAR SIGN).
*5 Sept 1973 FONT conversion for XGP (FCOPY) TVR
FCOPY is a program to convert between different font formats. It
currently knows about font formats of Stanford, CMU and Xerox. It
will also give some information about a font, i.e. its height, width,
and its baseline. It will also print a sample on the XGP which
includes a table showing the correspondence to Stanford ASCII. It
takes input in the following form:
<command> :: = <output file>←<input file>{/<switch>} |
<input file>{/<switch>}
<switch> :: = INFO|SAMPLE|DISPLAY|FIX=<integer>|STANFORD|CMU|XEROX
FCOPY decides what conversion to make by the extension and may be
overridden with the switches: STANFORD, CMU, and XEROX, where the
default extension are FNT, KST and XRX, respectively. The default
extension is FNT and if no PPN is given, your area is tried first,
then [XGP,SYS]. Multiple switches are legal. For example:
R FCOPY;FOO←NGR25.KST/FIX=16/DISPLAY
Converts the CMU font NGR25 and makes a fixed width font called FOO.
The result is display on your terminal (if it is a Datadisc).
Available switches are:
DISPLAY Display font on Datadisc
SAMPLE Print sample on XGP
INFO Print information about file
FIX Make into fix width font, of specified width.
Report any suggestions or problems to TVR.
*18 Sept 1973 PUB Command in RPG FW
A "PUB" command has been installed in RPG which behaves like the
compile-class commands, but only for PUB files. All compile-class
commands except COMPILE now ignore PUB files as possible candidates.
Soon COMPILE will not work for PUB either, so users should get into
the habit of using the PUB command instead.
RPG has also been modified to not require a closing square bracket
whenever the thing following the PPN is anything but a comma or
identifier.
*25 Sept 1973 PUB Changes for XGP TES
To repair certain unpleasant bugs in the PUB font select mechanism,
it is undergoing a major overhaul. The main effect on your
manuscripts is this:
Font selection will be area-dependent. That is, if you say
%1 or SELECT 1 when you have done a PLACE HEADING, the current font
will be changed to 1 only for the HEADING area. When a block is
exited, the current font of every declared area will revert to its
setting when the block was entered. Font select controls directed
by PUB to the XGP will be more intelligent as well. This will
probably happen by the end of October, if not very soon.
-- Larry Tesler
*28 Sept 1973 FILES command ME
New monitor command FILES gives you status of open files (just as
the WHO program does) without distroying your core image. The
command takes any of following forms:
FILES <job number>
FILES <filename>
FILES
The <job number> form prints the name and status of each file open
for the given job, where a zero <job number> means your own job.
The <filename> form prints all the references (by any jobs) to the
given file.
If the argument to FILES is a number in the range of legal job
numbers, then it will be assumed to be a job number. If it is a
number with three or more digits or is greater than the biggest job
number, then it is assumed to be a filename. A dot (".") or left
braket ("[") following a number also forces the number to be
interpreted as a filename. Filenames with spaces in the middle (or
at the beginning) cannot be typed to FILES. Explicit PPNs will
override the default PPN taken from your current ALIAS. If the
Programmer part of a PPN is omitted, the Programmer part of your
current ALIAS is used; in this case you must omit the comma in the
PPN. The closing right bracket ("]") after a PPN (or after a
Project when there is no Programmer) may be omitted.
If there are too many files open to print all their names at command
level, FILES prints as many as it can and then prints "...". In
this case, if you type just FILES with no argument, the previous
list of file references will continue.
If you give the FILES command with no argument when there is no file
list to continue, then a FILES 0 is done (i.e., files referenced by
your own job are listed).
When FILES is starting a new list of files, a blank line is printed
before the list of files, but when an old list is being continued,
no blank line is printed. Also, if the complete list is small
enough to be printed in its entirety, a blank line will follow the
list. Otherwise, "..." is printed after the part of the list that
fits.
The two numbers following a filename printed by FILES are,
respectively, the length of the file and the current pointer into
the file, both in record numbers. Some letters may follow the
second number and have the following significances:
W File is being written.
R File is being read.
RA File is open in Read-Alter mode.
E (after R or RA) End of file has been reached.
*29 Oct 1973 RAID FW
A few minor fixes and improvements have been made to RAID:
1) εX and εY now indicate whether the instruction skipped. This is
by means of an indicator at the top of the screen, like the "OK".
2) Line feed and backslash are now equivalent to greater than and
less than, respectively. This makes moving more convenient since
it isn't necessary to use the "top" key.
3) The initial program name selection is now reasonable even when
RAID isn't loaded first.
4) Initialization of search bounds is now more clever. The limits
are set to include the area from 140 to JOBFF or the bottom of
the symbol table, except that RAID itself will not be included
if it is loaded at either end of that area.
5) The display now gets refreshed properly when switching from III to
DD (sometimes a problem with saved core images).
6) The state of IOT-user mode is now saved and restored, and turned
off inside RAID, so debugging such programs will not execute
random hardware I/O instructions instead of displaying. (Note:
this does NOT mean you can now put breakpoints in spacewar modules
or user interrupt code.)
7) RAID now notices if the symbol table moves or changes size, and
attempts to do the right thing, hopefully avoiding dropping dead
with ILL MEM REFs and whatnot as it used to often do in that case.
8) The various indicators at the top of the screen have been scrunched
on Data Disc to single width, double height, since double width
mode is so unreliable.
Note to system hackers: The previously painful process of putting up the
DMP copy of RAID has been automated by a program called RAIDMP on CSP,SYS.
*31 Oct 1973 LOADER FW
Recent changes to the LOADER:
1) Block names are now loaded only if loading local symbols, since
they are of very little value other than for referencing symbols.
2) The left half of JOBHRL is no longer set up to the length of the
upper, since the system puts the write protect flag there.
3) The /= switch is available for RHT and anyone else who feels
horribly screwed by having all the globals grouped at the front
of the symbol table. The effect is to cause symbols to be loaded
as they used to, complete with searching the entire table when
looking up globals. This switch may have strange effects if it
appears after some files have been loaded.
*2 Nov 1973 EDFONT (XGP) TVR
EDFONT now accepts characters whose logical width is less than its
physical width, thus better italics and non-spacing characters are
now possible. The following example shows the difference between
logical and physical width. (See WIDTH.MSG[XGP,TVR] for change in
font file format). Note: This is not implimented in FCOPY yet.
***
*** **
** **
*** **
***
**
***
***
*******
***
***
***
***
***
***
**
**
***
***
** **
* **
* **
***
↑ ↑
Logical Physical
Width Width
*19 Nov 1973 XGP (Underline) REG
Effective with system 6.13/V, the definition of Underscore on the XGP
has been changed. In particular, the old underscore was positioned
vertically in terms of scan-lines from the top of the text-line.
The new underscore is defined relative to the baseline of the text-line.
This affects users as follows:
In PUB there is no change; however, a new version of PUB must
be used (which isn't available yet, but which should be ready in a day
or two).
In POX, the "A" parameter of <escape>ULABR must be changed
to reflect this modification.
(See UXGP.REG[UP,DOC])
*29 Nov 1973 E FW
The ETv and CEtv commands no longer go thru RPG, thus improving speed and
command options. Now all command formats legal after R E; are also legal
after ETv. The extension matcher has been added to E, as has a command
saver. The latter, however, is different in a few ways:
1) TMPCOR is used instead of the QQSVED file. This will eventually
be the convention for everything, since it is faster and also
separate for each job, eliminating conflicts when two people
are working on the same area. At present, the RPGSAV option in
LOGOUT will not preserve this type of file, but this may get fixed.
2) The command written in the file is always ET, since it is rarely
meaningful to repeat the creation of a file.
3) The file name written is the actual file name used, rather than
the one typed, so the extension kludge need not be used more than
once.
4) The file is actually written twice during an edit. It is first
written at the beginning of the edit with the switches in effect
at that time (presumably what was typed or what was previously
in the file). It is written again when exiting with the state of
the switches at that time. The most important effect of this is
that the switches include the page and line number so the edit will
be resumed at the old location when "ET" is typed.
5) There is now another entry point for possible use by programs. Entering
at the normal entry-1 will re-execute the command in the command
file. This is equivalent to starting RPG at the -1 entry for other
editors. Note that that feature of RPG will not currently work
for E because RPG doesn't know about TMPCOR yet.
*3 Dec 1973 LISP RWW
A new LISP interpreter is up. The old one is LISP.OLD, and will
still work in all respects. We expect this version to disappear
within a few months.
MLISP, MLISP2, RLISP, and COMPLR have not been converted to the new
interpreter. They still operate with the old interpreter, and should
work fine. Conversion of these systems will be done soon. For the
present, do not install any systems using this new interpreter, since
we will likely find some bugs, and you'd have to do it again.
See NEWLSP.DCS[UP,DOC] for details on the modifications which have
been made. They are all compatible with current programs.
*17 DEC 1973 COPY RPH
New feature in directory command:
DIR .EXT is equivalent to DIR *.EXT
*8 JAN 1974 NEWS LES
If you say "R NEWS ;<filename>" then the NEWS program will use your file
rather than NOTICE[UP,DOC].
*20 Jan 1974 EDFONT TVR
Changes to EDFONT.
1. When there is no file name is given on αR or αW, it is asked for
before the character is asked for.
2. The unusual characters may be specified with ' followed by octal
code. This means you can now edit <null>, etc.
3. Three new extended commands:
XANDSHIFT and YANDSHIFT which correspond to XORSHIFT and YORSHIFT.
IIIFNT which allows characters to be editted with the light pen.
See EDFONT.TVR[UP,DOC] for details.
*16 MAR 1974 BOOK MODE (/B) in E (READ) ME
The new /B mode (B for Book) in E provides some new features for
editing files, especially files which are really books in disguise.
1. In /B mode E will never permit you to alter the file you are
editing; you cannot change to READONLY mode or READWRITE mode from /B
mode. In /B mode, if you change part of a page and try to write out
the new version, E will simply remind you that you cannot alter the
file.
2. To help you keep your place in a book-file you are reading, E
keeps a special psuedo-RPG file on your area. This file will have
the name <filnam>.BKP, where <filnam> is the primary name of the
book-file. Note that the .BKP file is NOT an RPG file (although it
is in RPG file format), and thus will never be deleted by LOGOUT.
This .BKP file will contain the page number and line number at which
you were editing the book-file the last time you exited from E. E
will neither look for nor write a .BKP file unless you have started E
with the monitor command READ, which automatically starts E in /B
mode looking for a .BKP file. Furthermore, when you start E with the
READ command, if you specify any of the /L, /P or /R switches, E will
not read or write any .BKP file. And if you start E with just the
READ command without any argument, then unless there already is
a .BKP file on your area, no new .BKP file will be written.
3. The READ command with an argument (and without any of the /L, /P
and /R switches) will look for a .BKP file with the given name and
PPN. If that .BKP file is not found, E will look for the .BKP file
on your current ALIAS area and then on your logged-in area. If a .BKP
file is found, it is used and updated when you exit. Otherwise, a
new .BKP file will be written onto your (ALIAS) area when you exit.
4. Whenever you use E in /B mode, it will reference TMPCOR files with
the name BK instead of ED. Thus you can switch back and forth
between editing some program and reading a book by alternately giving
the no-argument monitor commands ETV and READ (provided you have once
given the filenames). In /B mode, E will display "/B" following the
filename at the top of the screen.
5. When you have finished reading a book-file, E will delete the
<filnam>.BKP file automatically. E will think you have finished
reading the book if and only if you are on the last page of the file
when you exit.
- - - - -
The complete book WUTHERING HEIGHTS by Emily Bronte is available for
general reading in the file WUTHER[LIB,DOC]. To begin reading it,
simply give the monitor command:
.READ WUTHER[LIB,DOC]
Then when you exit from E, the file WUTHER.BKP will have been written
onto your (ALIAS) disk area with the numbers of the page and line
where you were last reading. To continue reading the file later
during the same login session (and with the same ALIAS as before),
simply say:
.READ
which will read in the TMPCOR file BK for your current ALIAS. When
you exit again, the TMPCOR file and the .BKP file will be updated.
To continue reading after you have logged out and back in, say:
.READ WUTHER
which will cause E to find your .BKP file, which itself will contain
the name of the book-file WUTHER[LIB,DOC].
- - - - -
To read a file in /B mode without having the <filnam>.BKP file read
or written, type any one of the monitor commands:
.ETV <filename>/B
.READ <filename>/R
.READ <filename>/nP
where <filename> is the name of the file, including any extension
and/or PPN, and n is the number of the page you want to start on.
The /R in the second command and the /nP in the third inhibit use of
any .BKP file; the READ command starts E in /B mode.
- - - - -
Direct any bugs concerning READ to ME.
*8 APR 1974 FAIL changes REG
This is a quick summary of some recent changes to FAIL. These are more
completely described in FAIL.REG[AIM,DOC] - which will soon be printed.
Command line switches:
F - don't stop on error.
V - set listing page length.
Q - obsolete, deleted
Command line changes:
= is accepted in lieu of ←
+ or ; accepted in lieu of , as a separator between source file names
a comma at the end of the line following a source file name means
that the command is continued on the next line
New Pseudo-ops
.LOAD
.LIBRARY
.INSERT
XPUNGE
PURGE
SUPPRESS
ASUPPRESS
UNIVERSAL
SEARCH
PRINTX
New conditionals
IFMAC
IFNMAC
IFOP
IFNOP
Changes in condtionals
IFAVL True if a symbol is defined and available
IFNAVL
IFDEF True if a symbol is defined (not necessarily available)
IFNDEF
Other features/changes
OPDEFS get added to the symbol table even if redundant
LIT implied by END is XLISTed
Invented block names start at A.001 instead of A.000
Doesn't skip TV/E directory.
If no extension is given for the input, FAI is tried
first, then blank.
File names are typed out when they are looked-up.
The following characters are illegal as delimiters in ASCIZ,
COMMENT, etc: ":" "←" "↑" "~" and "#".
Bug fixes
TMPCOR feature fixed
ITS version: GETSYS bugs fixed
Error messages don't get confused by litlabs (or when FAIL restarts)
Symbol table fixups for litlabs in inner blocks fixed
Command files that don't end with a crlf fixed.
MOVE↑: now defines MOVE an internal label. (Works for any opcode)
The first character of the second and subsequent files now gets listed
properly.
Internal changes
Various documentation and format changes in the source files
Symbol table ascii dump code (/Y switch) conditional assembly
*14 Apr 1974 Font Sampler TVR
The program SAMPLE generates samples of *ALL* fonts on a particular
disk area automatically. Its operation is self-explanatory and may
be invoked by typing:
R SAMPLE
Please note:
------ ----
If you want a sample of the fonts on [XGP,SYS] (the system font area)
it is strongly suggested that you obtain a Xerox copy from one of the
secretaries, as there are more than 60 fonts on [XGP,SYS] and making
a sample involves a lot of system overhead.
Below is a sample sample:
FIX25.FNT[TMP,TVR]
Total Height = 25 Height above baseline = 20 Depth = 5
FIX25
CMU 4 16X25 FIXED CHARACTER SET
↓ α β ∧ ¬ ε π λ ∞ ∂
⊂ ⊃ ∩ ∪ ∀ ∃ ⊗ ↔ _ → ~ ≠ ≤ ≥ ≡ ∨
! " # $ % & ' ( ) * + , - . /
0 1 2 3 4 5 6 7 8 9 : ; < = > ?
@ A B C D E F G H I J K L M N O
P Q R S T U V W X Y Z [ \ ] ↑ ←
` a b c d e f g h i j k l m n o
p q r s t u v w x y z { | } }
The Xerox Graphics Printer (XGP) provides a means of making a
hardcopy listing of virtually any drawing that can be expressed as a
one-bit raster. The XGP accepts as data a bit array describing each
scan line that is printed. Each scan line is approximately 1700
bits; scan lines are spaced at about 200 per inch along the paper. A
picture is built by sending successive scan lines to the XGP.
*22 APR 1974 FAIL changes (continued) REG
1. JFOV added
2. XLIST now prints itself
3. FATAL End of File... now has more information about where the
text pseudo-op, macro argument list, literal, etc. that didn't
terminate got started. (Includes the file name.)
4. .FNAM1, .FNAM2 predefined symbols have been added
5. Various bugs in FAIL output to CREF have been fixed.
*22 MAY 1974 FILE PROTECTION DSKPRO REG
File Protection Stanford 6.16/J (and later)
Highlights:
a. Protection of files and directories are separate cases.
b. The category "same programmer, different project" has
been eliminated. The category "others" have been changed
to "other local users" and "other remote users".
c. A remote user is a user of any non-local terminal, i.e.,
arpanet, dialup, or campus terminal. Exceptions are
made in some cases for users who are known to us, who
have applied for the local user privilege and who guard
that privilege with a password.
d. A local user is any user who is using a local, i.e., in this
building, terminal.
File Protection bits
400 ignored by system (Dump never in DART)
200 ignored by system (Delete protect in COPY)
100 Write Protect from owner
40 Protection Protect from local users
20 Read Protect from local users
10 Write Protect from local users
4 Protection Protect from non-local users
2 Read Protect from non-local users
1 Write Protect from non-local users
Protection bits (ufds)
400 ignored by system (Remote-only password in LOGIN)
200 undefined
100 ENTER protect from directory owner
40 Protection Proect from local users
20 Read/LOOKUP Protect from local users
10 ENTER Protect from local users
4 Protection Protect from non-local users
2 Read/LOOKUP Protect from non-local users
1 ENTER Protect from non-local users
Changes to uuos
LOOKUP MFD legal
LOOKUP UFD legal if permitted by UFD protection
LOOKUP FILE legal if (permitted by UFD protection READ)
AND (permitted by file protection READ)
ENTER MFD illegal
ENTER UFD illegal except for LOGIN and only to make a new file
ENTER FILE legal if (permitted by UFD protection WRITE)
AND (permitted by file protection WRITE if file already exists)
Change protection of file:
RENAME MFD illegal
RENAME UFD legal for directory owner. LOGIN provides
a means for doing this (see below)
RENAME FILE legal if (permitted by UFD protection PROT)
AND (permitted by file protection PROT)
Change name of file:
RENAME MFD illegal
RENAME UFD illegal except LOGOUT can delete empty directories.
RENAME FILE legal if (permitted by UFD protection WRITE)
AND (permitted by file protection WRITE)
Default protection:
If the protection specified in an ENTER is zero, the file will be given the
protection found in the default-protection entry in the UFD, except, if the
file already exists, the protection of the old version will be passed to the
new version.
LOGIN modifications:
When the delimiter between the project name and the programmer name
is %, LOGIN will allow the user to change his password, the UFD
protection, and the default file protection.
*24 May 1974 REMOTE LOGINS BH
Effective 1 June 1974 the Remote User's Password will no longer be used
for remote login. Instead, remote login will not be permitted unless
the PPN specified to LOGIN has its own password or is NET,GUE.
So that local users who occasionally log in remotely need not type a
password every time they log in locally, it is possible to declare that
the password for your PPN should be considered "remote-only": you will
only be asked for it from a remote terminal. To do this, turn on the
400 bit (not used by the monitor) in the protection code of your file
directory. (If you log in using % as the delimiter between your
project and programmer names, you are given the opportunity to change
your password, the protection of your directory, and the default value
of the protection code used for new files created in that directory.)
The COPY program, which also uses passwords to control file access,
will also interpret the 400 bit in the protection code to skip the
password check for local users.
A remote user is one who is loged in from the ARPA network, from the
dial-up dataphone lines, or from terminals on campus.
*26 May 1974 News Service--NS ME
A new News Service system has replaced the old AP news system. The
new system currently has available only Associated Press news but we
are negotiating with various other wire services and may add one or
more to the AP wire we have now.
The News Service user program is invoked by the system command NS.
This command runs the NS program with some privileges that it needs.
Any system command that attempts to change the core image of the NS
program or that attempts to change the job's disk ALIAS will also
take away the temporary privileges, thus preventing NS from working.
This means, among other things, that if you change your ALIAS after
starting NS, then you will have to restart it with another NS
command.
The new news system is documented in the file NS.ME[S,DOC]. The most
significant features of NS are: categorization of every story by
every non-trivial word (that is, except for very common words like
"the", "and", etc., every word is now a keyword); retention of the
news for more than just one day (the exact length of time for which
we will retain each day's news has not yet been decided, but it will
be kept for at least a week); and display-oriented presentation of
the news (terminals other than Stanford displays will still type out
the news). Currently, news is available from 13 May 1974 on.
The new system is not quite complete and lacks the following
features, which will be implemented soon: automatic notification
(requests still in the old system will not be carried forward into
the new system); outputting news to files and to the spooler; and
suffix removal for keywords.
The program HOT will still type out the news as it comes in.
*28 May 1974 News Service--NS--HOT ME
The hot line program for the new News Service system can
now be run only with the new monitor command HOT.
*1 JUN 1974 NETWORK MAIL BH
The MAIL command now allows mail to be sent to users at other ARPA
network sites.
(This service is not available to network guests, sorry.)
Since the "@" character was already used in MAIL to specify a file
to be read for command arguments, the character "%" is used to
signify ARPA site names, e.g., BH%SU-AI not BH@SU-AI. Site names
can follow a user name, as above, or can be used alone (followed by
a space) as a "sticky" site:
MAIL %MIT-AI RG,TK,MINSKY,BH%SAIL,PAPERT
will send the message to RG, TK, MINSKY, and PAPERT at MIT-AI, and
to BH at SAIL. (Of course, if SAIL is used as the site name the
mail is not actually sent through the network!)
User names for foreign hosts can be of (essentially) arbitrary length.
If the name is a string of letters and digits starting with a letter,
it can simply be typed as is: TEITELMAN % MAXC for example. (The case
of letters is preserved, in case it matters to the foreign host.) If
the user name contains characters other than letters and digits, or
starts with a digit, enclose it in quotes (") with two quotes used to
represent a single quote if necessary. The host name cannot contain
any special characters except hyphen. Partial site names are recognized
as in our TELNET and FTP programs. Also, a decimal number may be used
instead of a host name if necessary.
If the destination list in a MAIL command includes PPNs at SAIL (which
must be enclosed in square brackets), SAIL is assumed as the destination
host and should not be specified explicitly, e.g.,
MAIL %AI [1,BH],TK
mails to TK at MIT-AI and [1,BH] at SAIL. To mail to a PPN somewhere
else, you must say, e.g.:
MAIL "[N900AR00]"%CMU
The outcome of an attempt to send network mail is reported to you, in
a format somewhat like SNDMSG in TENEX. The possible outcomes are
USER at SITE -- ok
USER at SITE -- refused
USER at SITE -- failed
USER at SITE -- queued
The first case means that the mail was successfully sent. The second
means that the network connection was made successfully but the MAIL
command was rejected, possibly because there is no such user at that
host. "failed" means that the network connection was unsuccessful,
perhaps because they are down, and the mail could not be queued. The
queueing system for network mail is described in a later NEWS entry.
Usually if the mail is refused, and possibly otherwise, the remote host
will send us error messages intended to be helpful to you. If any such
messages are received which are not part of the normal MAIL sequence,
they are typed out along with the status report. Thus you can hopefully
figure out why the mail was refused. If you get "refused" with no
explanation, or see messages which seem like part of the normal
sequence (e.g., "mail successfully completed"), please save the relevant
information and send me (BH) a note about it.
Mail to foreign hosts is prefixed with a TENEX-ish header including your
real name, if known to the system, and your net address (PRG @ SU-AI).
Thus recipients should be able to figure out how to reply.
Distribution list files as in MAIL @FILE can, naturally, include
network destinations. The /D switch, which includes the list of
addressees in the message, includes network addressees, as typed
(e.g., with abbreviated site names if that's what you typed). The
message header as sent to each net addressee has his site name
in full, with his user ID as you typed it.
It is possible to get the system somewhat confused by interrupting
the execution of network MAIL at the wrong time. The symptom will
be that thereafter any attempt to do network mail by the same job
will get the "failed" return very quickly. If this happens to you,
please let me know the exact details--if possible, find me right
away. I believe this is a system bug, but I'm not sure.
P.S.--I now believe that this will never happen anymore, but not sure.
*4 JUN 1974 NETWORK MAIL QUEUE BH
The network mail feature in the MAIL command can now queue up mail to
a remote site if it is unable to complete the network connection when
you make the request (remote host down, etc.) The mail is queued via
the REMIND phantom. The status report when you give the MAIL command
will be
USER at SITE -- queued
The mail will be retried at three-hour intervals for three days. If
it is sent successfully, or if the three days run out and the request
is deleted, you will receive a status report from the REMIND phantom,
in the form of a reminder from yourself saying
ARPA network mail to USER at SITE -- ok
if successful, or
ARPA network mail to USER at SITE -- expired
if not. The date and time in the header of this status report will be
the time when the message is actually sent successfully (or deleted).
The date and time in the header of the message sent to the remote site
is the time when you originally tried to send the message.
The CANCEL command lists ARPA mail which you have queued and allows
you to abort the request. The listing by CANCEL contains the text
of your message and the name of the addressee, but lists his site by
number rather than by name. It also specifies the number of attempts
remaining before the request will be deleted.
It is still possible to get the "failed" status report from a network
MAIL command if the program is unable to enter the request in the
REMIND queue, for instance because there are no job slots available
for the phantom. In this case you must try again later yourself.
(You can save the text of a long message you have typed in by giving
the monitor REENTER command after MAIL exits and redirecting the
mail to yourself.)
Please report problems to BH.
*6 JUN 1974 PTYJOB JBR
PTYJOB now allows you to send control and meta characters to the job
being controlled by the PTY. If you type meta-M then all further
characters except ctrl-meta-M, meta-Z and ctrl-meta-Z are sent through
unchanged. Type ctrl-meta-M to get out of this mode. Meta-Z and
ctrl-meta-Z act as quote characters at any time. See NET.JAM[UP,DOC]
for a complete description of the operation of PTYJOB.
*7 JUN 1974 TELNET,PTYJOB,DIAL JBR
New command Meta-F or control-meta-F extends the last file used for
output. If there was no last file it asks for a file to extend.
See NET.JAM[UP,DOC] for complete operating instructions.
*14 June 1974 News Service--NS ME
Several new features have been added to NS. Complete details of
these features are available in the documentation file NS.ME[S,DOC].
1. The command switches /OUTPUT, /SPOOL and /XSPOOL have been
implemented. /SPOOL spools the stories in your current story list on
the line printer. /XSPOOL spools them on the XGP. /OUTPUT writes the
stories into a file which you can designate by following the switch
with a filename, e.g.,
/OUTPUT FILE.EXT[FOO,BAZ]
If the filename is omitted, the file NS.NS on your current ALIAS disk
area is used. If the extension is omitted, .NS is used. If the
output file already exists, you will be asked whether it should be
replaced or extended or the output aborted. You can get one of these
three actions taken automatically if the file already exists by
following the filename with one of the switches /REPLACE, /EXTEND,
and /ABORT, e.g.,
/OUTPUT FILE.EXT[FOO,BAZ]/EXTEND
See the section "Output Files" in NS.ME[S,DOC].
2. Decimal arguments are now allowed with the six display commands
"U" & "I" (stories), "J" & "K" (parts) and "M" & "," (frames). For
example "9U" will move forward 9 stories and "6M" will move forward 6
frames. When a (non-zero) argument is used with one of these
commands, NS will not move beyond the last frame, part or story of
the current part, story or list; if, for instance, the current story
has 4 parts and you are looking at the second one, "99J" is the same
as "2J". If you are looking at the last frame of a part, "5M" will
not do anything, although "M" by itself would go on to the next part.
See the section "Display Commands" in NS.ME[S,DOC].
3. The extended display-level command DPART has been implemented.
This command deletes the currently displayed part from the current
story list. See the X display command at the end of the section
"Display Commands" in NS.ME[S,DOC].
4. Multiple word keywords such as "LOS ANGELES" can be used in
keyword expressions. The interpretation of such multiple word
keywords is exactly that which would be made if the individual words
of the keyword were separated with stars (*'s) instead of spaces.
That is, "LOS ANGELES" is treated the same as "LOS * ANGELES"; and
"NIXON LOS ANGELES" is treated the same as "NIXON * LOS * ANGELES".
5. On display terminals, ESCAPE I will now interrupt any of the
following:
a) Making headline story.
b) Outputting stories to a file (whether for spooling or not).
c) Evaluating a keyword expression for two or more days of news.
When such a manual interruption is made, a message to that effect is
typed out and automatic reading from any command file is suppressed.
This type of interruption is not currently available on non-displays,
but it may be implemented soon through a similar mechanism.
6. When starting up, NS tells for how far back in time news is
available. The /DATES command switch also gives this information
in addition to typing out your current date range.
7. If a decimal number K appears in a keyword expression as the
SECOND argument of any operation, then that number represents the K
most recent stories of the other (first) argument of the operation.
For example, "NIXON * 10" represents the 10 most recent stories that
mention Nixon.
If a number K appears as the FIRST argument of an operation, or as
the only term in a keyword expression, then that number represents
the most recent K stories in the news. For example, "8 * NIXON"
represents, of the latest 8 news stories, any that mention Nixon;
and "5" represents the latest 5 news stories.
8. A blank command line no longer causes NS to go to display level.
The new command switch /PRESENT, abbreviated /P, puts NS into display
level for presentation of the news.
9. On non-display terminals, the default number of lines of headline
story allocated for each story in the current story list is now one.
See the section "Headline Stories" in NS.ME[S,DOC].
10. On non-display terminals, stories shorter than about 6 lines are
no longer broken into two frames.
11. No headline story is made automatically when there is only one
story in your current story list.
12. On displays, a double arrow (↔) marks the middle of the display
screen for indicating where text will move to with a frame command.
13. When awaiting a command line to be typed in, NS now types out
"*KEY: " instead of just "*".
*28 July 1974 FCOPY - Font conversion TVR
There is a new version of FCOPY up. FCOPY now knows about both kinds
of kerning. MIT font format has been added to the formats which
FCOPY will convert. Since MIT is a superset of CMU format, MIT font
files will have a default extension of KST. If one wants to convert
to MIT format, the switch /MIT must be given so that FCOPY will put
in the kerning information.
There are two new switchs, /TTYPIC and /DEBUG. TTYPIC types out each
character on your console as it converts. /DEBUG prints the width,
raster width and left kern of each character, and other debugging
information.
In addition, a number of bugs have been fixed and FCOPY now tells you
which character the system font compiler rejected when you do a
sample.
*31 July 1974 News Service--NS ME
Some new features have been added to NS. Complete details of these
features are available in the documentation file NS.ME[S,DOC].
1. Suffix removal is now done automatically before words are used to
categorize or retrieve stories. The only suffixes removed are: -S,
-ES, -ING, -ED and -LY, but these suffixes are removed in all their
forms. For instance, when a letter is doubled before adding -ING or
-ED, the doubled letter is removed along with the -ING or -ED. And
suffixes formed when a final -Y is changed to -I before adding -ES or
-ED are correctly removed. The same suffix removal is applied to
keywords typed in by the user.
2. At display level, an attempt to advance to the next story when you
are already looking at the last story will cause the program to leave
display level and ask for a command expression next. The same thing
will happen if you try to back up to the previous story from the
first story in the list. Also, Stanford display terminals will show
"DL" in the middle of the header line at the top of the screen
whenever the program is at Display Level.
3. NS now keeps track of the stories you have seen. When a new
keyword expression is evaluated, any stories found that you have
already looked at are removed from the new current story list. The
number of stories so removed is reported along with the number of
other stories found. To inhibit this removal of stories already seen,
use the new mode switch /AGAIN to change from the initial /-AGAIN
mode (either temporarily or permanently). When a new part (follow-up
story) is added to a story already seen, the whole story is then
marked as unseen so that you can access the new part.
4. The command switch /UNSEEN will cause NS to think you have not
seen any stories yet. See 3 above.
5. In a headline story, the default number of lines allocated to each
story is now two.
6. The new command switch /FRAME has been added to allow users to set
the size (in lines) of story frames typed out in teletype mode. The
size should be included as the argument to this switch, for example
"/FRAME=15". Each story typed out will then be broken up into frames
of the specified size, except for the first frame of each story,
which will always be five lines long. The purpose of having a
settable frame size is to allow users of display terminals (at
Stanford or elsewhere) to have the typeout stop before unread parts
have gone off screen. Note that if you use a frame size too small,
the maximum number of frames possible will be generated and the last
frame will contain more than the number of lines you have specified.
*16 August 1974 VODER Service - Voice Synthesizer REG
The voice synthesizer (VODER) has device name VOD. Mode 10 (octal)
is the only legal mode. The buffer size is 20 (decimal) data words.
The data in the user's buffer is sent directly to the voder.
The Voder interface interprets each word as four 9-bit bytes. The
400 bit of each byte is the valid bit. The other eight bits represent
a phoneme. Care should be taken to avoid the phoneme with value zero,
because this will cause the voder to stop, and the rest of the buffer-full
will not be transmitted until later, and data may become lost.
For a description of the correspondence between phonemes and byte-values,
see section 21 of the facility manual, FACIL.TED[H,DOC]
DEVCHR of VOD is DVOUT and a bit for mode 10. There is no special DEVCHR
bit for the voder. Only the UUOs OPEN (and INIT), OUT (and OUTPUT),
CLOSE and RELEAS are valid for the voder. LOOKUP, ENTER, RENAME, and MTAPE
are no-ops.
*19 August 1974 TELNET, PTYJOB, DIAL JBR
Control-meta F now asks for a file name to extend rather than
extending the last file you were writing (which is what meta-F
does).
*21 August 1974 MAIL APPEND BH
The MAIL command now takes the /A switch to append the new message
to the most recent message from you to the destination. If there
is no such message in his mail file, a new message is created as if
the /A switch had not been used. If you specify more than one
destination, the right thing is done for each destination
individually. Needless to say, this feature does not work for
network mail! (But nothing bad happens, it just ignores the switch.)
It also doesn't work for MAIL *.
The message to which your text is appended is the first one found
in the message file for which the programmer name of the sender
(as shown in the message header) is the same as your login
programmer name.
Note: Many people leave old messages around in their mail files but
never actually look at them again. This feature is used at your
own risk.
*4 Sept 1974 News Service--NS--HOT ME
The New York Times News Service news is now available from NS and
HOT. To read the incoming AP news, type the monitor command
"HOT;AP" or just "HOT". To get the NY Times news, type the monitor
command "HOT;NY" or just "HOT;". HOT will type back the name of the
news wire it is giving you along with the last few lines of news that
have come in over that wire. After HOT has started, you can switch
from one wire to another at any time by typing a carriage return.
A new NS is up featuring the availability of New York Times news. To
give the user the choice of what combination of AP and NY Times news
he wants, two independent mode switches, /AP and /NYT, have been
added. In /AP/NYT mode (which is the default), both wires are used
as news sources. The mode /-AP inhibits retrieval of AP news and
mode /-NYT does similarly for NY Times news.
In addition, two new time switches have been added to supplement the
date switches. The time switches allow you to specify the time range
for which stories are to be retrieved within your date range. This
feature is especially useful if you read the news more than once on a
given day and do not want to see the same stories twice. To set the
beginning time of the time range, say /AFTER followed by the time you
want. To set the ending time, say /BEFORE followed by the time. Thus
if you have read the news earlier at (say) 11am, then "/AFTER 11"
will prevent NS from presenting any stories that came in before 11am
except for stories that have had a new part added to them after 11am.
Almost any format can be used for the time specification, provided no
spaces occur in the middle of the time. For instance, all of the
following are legal and mean 1pm: 1pm, 1p, 100p, 100pm, 1:00p,
1:00pm, 13, 1300, 13:00. The time specifications "12am" and "12pm,"
being somewhat ambiguous, are not permitted: use 0 or 24 for midnight
and 12 for noon. For more details, see the section on THE TIME RANGE
in NS.ME[S,DOC].
*5 Sept 1974 RCV SOS mode BH
RCV now has a mode, for use at non-Stanford terminals etc., in
which it accepts tty input in SOS representation. The main
impetus for this is to permit ?* instead of ∂ for redirecting
messages to another mail file, but it can also be used with the
append option to allow appending upper/lower text from an
upper-case-only terminal. The following notes apply:
1. When RCV is started, it decides whether or not to use SOS
representation on the basis of the FCS (full character set) bit
maintained by the monitor. This bit is set by the TTY FULL
command (or <escape>F at a Stanford display) and cleared by
TTY NO FULL (or <break>F).
2. Whenever RCV reads an altmode character from the tty, it
will enter SOS mode and otherwise ignore the altmode, except
that if you are already in SOS mode the sequence ?<alt> will
leave that mode. (If you are not in SOS mode, of course, the
? will be taken as a real ? and the <alt> will enter SOS mode!)
3. These comments apply even to the original command line,
although the monitor will echo a crlf after the altmode to
confuse you. Note that if your FCS bit is off and you want
to invoke the RCV feature which types a user's plan file,
you must say RCV ??PRG instead of RCV ?PRG as usual.
4. Under no circumstances is tty OUTPUT done via SOS
conversion. I hate seeing all those question marks!
5. If you are in SOS mode and type ? followed by a character
which is not defined as an SOS code, the character will be
treated, and echoed, as ascii 7; this will ring your tty's
bell if it has one, give an error message if you are responding
to an option request, and insert a π in your message if you
are appending.
*13 Sept 1974 News Service--HOT ME
HOT now types out the AP news and the NY Times news simultaneously on
displays. The user can, however, disable this feature and have his
display treated just like a non-display. Users of non-displays can
still select the wire to be typed out and can switch between wires.
The following commands are now accepted by HOT. The commands that
are meaningful only when typed on displays are so indicated. The
notation <cr> means Carriage Return.
COMMAND EFFECT
[ESC] I Redraw news text and titles. (Displays only.)
EXIT <cr> Exit.
DISPLAY <cr> Display both NY Times and AP news. (Displays only.)
NYT <cr> Type out NY Times news only.
AP <cr> Type out AP news only.
<cr> Change news wires. (In non-display mode only.)
HELP <cr> Present this list of commands and meanings.
? <cr> Same as HELP.
Each command may be abbreviated to one character. Also, on displays
that one character need not be followed by <cr> if <CTRL> and/or
<META> is held down when the character is typed. For instance,
<CTRL><META>E will exit.
The HOT monitor command is used to start up the HOT program. The
commands above may be given in the monitor command line by typing
"HOT;" immediately followed by the command desired. For example,
"HOT;NYT" will start up HOT in non-display mode typing out only the
NY Times news, and "HOT;?" will start HOT in normal mode but make it
present the command list.
*22 Sept 1974 INIT Login option SGK
The option INIT (LOGIN: in OPTION.TXT) now exists. It runs the file
INIT.DMP on your area after you have logged in. This allows you to
have a personal INIT file run each time you log in without the
overhead of going thru LOGRUN. Another disadvantage to using LOGRUN
is that it puts stuff in your input buffer, which is incompatable
with typing ahead.
The LOGRUN option takes precedence over INIT which takes precedence
over the PORNO option.
No claim is made for the spelling herein. Bugs, comments to SGK.
*27 Sept 1974 Dired SGK
Dired is a display oriented file management program. It is a
'directory editor'. Its command language is very much like E's. It
displays your files on your screen (one to a line), sorted by name,
date, or size. Files may be deleted, and even 'undeleted' (before
Dired is exited). Commands are provided for switching between Dired
and E in both of the programs. The commands ? and /HELP display
short descriptions of most of the commands. The monitor command DRD
starts Dired.
See DIRED.SGK[UP,DOC] for more information.
*29 Sept 1974 Subject Line in Network Mail BH
For those misguided souls who want their network mail to be compatible
with the TENEX READMAIL program, it is now possible to include a
subject line in the message header by using the /T switch in the
MAIL command (for Tenex, or Topic if you like). This switch takes
the first line of text in the message as the subject line, and also
forces multi-line input (as if the command line ended with lf instead
of cr). Thus the input command
MAIL/T TESLER%MAXC Horrible PUB problem<cr>
I tried to run PUB and this is what happened:...
...
<control><meta><lf>
will produce a message like this:
Date: 29-Sep-74 1:55 PM
From: Brian Harvey (BH @ SU-AI)
Subject: Horrible PUB problem
To: TESLER @ PARC-MAXC
- - - -
I tried to run PUB and this is what happened:...
...
-------
If the text input is from a file, the first line of the file will be
used as the subject. If local (SAIL) destinations are included in
the command, the message as received locally will be:
∂29-Sep-74 1358 1,BH
Subject: Horrible PUB problem
I tried to run PUB and this is what happened:...
...
If a network mail attempt fails and a FAILED.TXT file is written,
it will contain:
Horrible PUB problem
I tried to run PUB and this is what happened:...
...
A later command of the form MAIL/T TESLER%MAXC @FAILED
will therefore do the right thing.
If a network mail attempt fails and is queued, the message as listed
by the CANCEL command will not contain the subject line, but it's
really there, fear not.
*4 Oct 1974 MAIL to random files BH
It is now possible to use MAIL to add a message to any file of your
choice, not just the standard message files. For example, one
application which was suggested to me was a diary file. The command
syntax is
MAIL :<filename> <text>
The message may also be sent to other, standard destinations, but
only one nonstandard file may be specified, i.e., you may say
MAIL BH,:FILE,LES MESSAGE
but not
MAIL :FILE1,:FILE2 MESSAGE
The file must be on DSK. Any filename, extension, and PPN may be
specified. The default extension is .MSG and the default PPN is
your current alias. All the usual switches, etc. may be used.
*8 Oct 1974 News Service--NS ME
A new version of NS is up with a revamped command structure and
several new features including searching the current story list.
Perhaps the most important new features is NS's self-documentation.
Almost all the information you may need in order to use NS is
available from NS itself, but here are the highlights.
The main change to NS involves the command structure. There are no
longer two different "levels" of commands to NS (formerly there were
keyword level and display level). NS now accepts any command in any
command line. The first character in a command line (the "command
character") determines the command. The six main old "display
commands" (UIJKM,) are now command characters; they do just what they
used to do.
The primary effect this command structure change has on the user is
that keyword expressions must now be preceded by a space. Old
command switches have been replaced with mnemonic commands using the
command character colon (:), for examples, :DATES<cr>.
The self-documentation of NS is invoked by typing ? optionally
followed by a subject on which you want help. To further explain new
features, a "notice of the day" feature has been added which causes
NS to display the current NS notice, if any, when starting up.
Also, any characters following the NS in the monitor command which
starts up NS are treated as the first command line.
NOTE: Complete documentation of NS is in the file NS.ME[S,DOC].
*11 Oct 1974 MAIL--APPEND TO FILE BH
By popular demand (somebody asked for it), the feature of MAILing to
nonstandard files has been extended so that a message may be appended
to a file instead of apbeginninged. To wit, a destination of the form
&<filename> is just like :<filename> except that the message will be
put at the end of the file rather than the beginning. Only one
nonstandard file destination may be used, as before, whether
with : or with &. One might like to think of "&" as mnemonic for
string concatenation. (In case anyone is interested, ":" was meant
to be mnemonic as an abbreviation for "DSK:".)
The /A switch (MAIL/A) does not affect a destination with & although
it does affect one with : .
*14 Oct 1974 MAIL - E SWAP FEATURE BH
When typing a multi-line message into MAIL from a Stanford display
terminal, you can automatically start up E editing the message, as
typed in so far; then when you are happy with it, automatically
restart MAIL to send the message. Here's how:
While typing in the message text, type <control><meta>E
(anywhere in a line ok). This will store your message in a file
named MAIL.TXT, write a TMPCOR file,
and finally start E editing MAIL.TXT, wich will be a one-page,
directoryless file.
When you are done editing the message, type <control>X RUN to E.
This will restart MAIL, which will send your message and delete
MAIL.TXT and the TMPCOR file it created.
*14 Oct 1974 SAIL -- SAISG8 version. RHT
SAIL Changes, New Features
Compiler Version 16, Segment SAISG8
R. Taylor, J. Reiser, R. Smith
October 18, 1974
The new version of SAIL should present relatively few changes
and inconveniences for the user. There are no known language
incompatibilites. Unfortunately, it will be necessary to recompile all
.REL files (including load modules and libraries) for use of the new
SAIL.
The main reason for bringing up a new SAIL is to accomodate the
new debugger that John Reiser has written. Thus, the new compiler has
features that allow the compilation to include the semantic information
about the program necessary for the debugger. A few changes have also
been made to the runtime system to accomodate the debugger, chiefly the
change in the break table features, described below. The debugger
itself will be available in several weeks.
A few other changes have been made that the user may see.
These are described below.
CLOSE Inhibit Bits
The CLOSE function now has an additional optional argument that
allows the CLOSE inhibit bits to be turned on. The second argument is
the bit pattern for the inhibition, and it is defaulted 0. See the UUO
manual for details.
This feature is available only at SU-AI, and is not available
in the TENEX version.
TYPEIT Array type
The number returned by the TYPEIT procedure (which identifies
the type of the datum of its item expression argument) is now changed
for arrays. Now it is '24 plus the scalar value of the type (e.g.,
INTEGER), whereas before it was '15 plus the scalar value.
Additional types added to TYPEIT are: '16 for labels, '17 for
record classes.
Comparison of .REL Files
Starting with version 18, the compiler emits information into
each .REL file containing the version of the compiler used. Then,
during the SAIL initialization sequence, these versions are compared,
and a warning message is issued if necessary. Thus, the problem of
converting from one version of the compiler to a new version is
lessened. This feature may not work as well in the current changeover
as it will in the future.
SCAN Optimizations
The SCAN function has been modified to return true substrings
instead of copies in those cases that the break table in question was
not omitting any characters. This should be an improvement in the
efficiency of those routines.
BREAK Tables
There are now 54 user-setable break tables available to the
SCAN, INPUT, TTYINL functions, as well as SETBREAK and BREAKSET. These
tables are allocated and deallocated dynamically.
In addition, GETBREAK now returns the value of the smallest
unallocated breaktable, and RELBREAK releases its table argument. The
implicit declarations of these new runtime routines are:
INTEGER PROCEDURE GETBREAK
PROCEDURE RELBREAK(INTEGER TABLE)
NOTE: a breaktable is allocated by either GETBREAK, SETBREAK, or
RELBREAK. A breaktable is de-allocated (and thereby made available to
GETBREAK) by RELBREAK. Breaktables are stored in groups of 18, so it
is more efficient to use all the tables in a given group before going
to another group. The use of GETBREAK is particularly recommended for
load-modules and the like, so that conflicts will be minimzed.
HACKERS: Actually there are 18 additional system breaktables
which are reserved for use by the SAIL runtime system. These tables
are numbers -17 through 0, and are ordinarily not available to the
user. They will be used by the debugger and by additional SAIL system
software.
The user can obtain access to breaktables -17 through 0 by
setting BRKPRV(USER), for example by the USERCON function. WARNING:
absolutely no guarantees are made to the user who accesses these
breaktables. This information is intended for completeness only; the
use of these special breaktables by the user is not recommended.
*25 Oct 1974 MAIL RCV BH
Summary of recent changes:
RCV has been extensively modified to allow more than one option per
message, e.g., ZXS will allow Z mode editing, then XGP spool the
edited message and also save it.
Two new RCV options:
K transfers the message to the file LOGOUT.MSG on your area; this file
will be typed and deleted when you log out (and are not logged in
elsewhere).
M allows the message to be modified (from Stanford displays only) by
running the E editor with the message as its data file. Return to
RCV with the E command <control>XRUN.
Also, the command RCV GRIPES reads messages sent by the GRIPE command.
I believe that things which used to work still do work as before. The
complete documentation is in RCV.BH[UP,DOC]
Changes to MAIL (and SEND, etc.):
There is a more convenient facility for program-originated mail, using
TMPCOR and the ACs passed by a SWAP UUO.
MAIL/W now lists logged-in recipients as SEND/W does.
OUTGO.MSG is now found on your login (not alias) area.
The complete documentation is MAIL.BH[UP,DOC]. See page 5 for the
program interface specification.
*30 Oct 1974 FAIL REG
Recent changes to FAIL
Complete documentation can be found in FAIL.PUB[CSP,DOC]
or in FAIL.REG[AIM,DOC] (in preparation).
Switches:
/O Omit output of binary universal files
/E Extend main PDL
Pseudo Ops
UNIVERSAL now causes a binary universal file to be written
SEARCH FOO will read FOO.FUN if FOO isn't in core.
will also try UNV:FOO.FUN and SYS:FOO.FUN
SEARCH FOO(DEV:FILE.EXT[PPN]) will read the specified binary
universal file
GDEFINE like DEFINE except makes macro definition exist in outer
block
.DIRECT takes function names
KA10 mark code to execute on KA10 only (Needs LINK-10)
KI10 mark code to execute on KI10 only (Needs LINK-10)
.NOBIN suppress binary output
.NOUNV suppress binary universal output
.XTABM change macro argument processing: leading
and trailing blanks in actual arguments are
not passed to the macro, unless the argument
is enclosed in braces.
.ITABM default, old way, blanks and tabs are passed with
the argument
.FATAL types current line and stops the assembly
.INSERT is recognized anywhere a macro name may be expanded
(i.e., doen't have to appear as first thing on a line)
.REQUIRE same as .LOAD
.REQUEST same as .LIBRARY
.ORG same as ORG
.LINK same as LINK
.LNKEND same as LINKEND
.CPU. predefined variable.
if Fail is running on value is
PDP-6 1
KA-10 2
KI-10 3
The following pseudo ops should not be used until we get LINK-10:
.COMMON
.ASSIGN
.TEXT
features;
<> are accepted for [] in ppns
Fail writes its processor id (12) in loader block type 6.
new arithmetic operators:
∂ remainder in divison
∃ JFFO (the bit number of the leftmost 1 bit in the argument)
| absolute value
END prints program break, starting address, etc. on listings.
bug fixes
two bugs in ,, (halfword operator) fixed
bug in MEVAL casuing ILLUUO frominput form: ↑X<return>
program interface.
*4 Nov 1974 PLAN EXPIRATION (MAIL) BH
The PLAN command can now include an expiration date in the same format
as the MAIL * command, i.e.,
PLAN →date message
The date is in any of the formats acceptable to REMIND, but does not
include a time. The PLN file will be deleted at midnight of the date
specified, i.e., the file will not exist as of that date.
This feature is implemented by entering a LATER request for the
specified date to run the program DELPLN.DMP[RMD,SYS] which actually
does the deletion. This DELPLN request will be listed, and may be
flushed, by the CANCEL command.
*5 Nov 1974 ILISP (IL,actually) IMPROVEMENTS DWP
→$→ HOW TO READ THIS DOCUMENT ←$←
Dates in the right-hand margin indicate when the 19 NOV
corresponding paragraph (or so) was last modified. All dates are
after 1 Nov. 74. Main documentation for IL is `CS 206 CLASS NOTES -
UCI LISP MANUAL', which might concievably be available from some
piece of the CS dept.
This document is page 128 of NOTICE[UP,DOC].
N.B.: `IL' is the name of the interpreter.
`IC' is the name of the compiler.
I. →→IMPROVEMENTS IN ERROR HANDLING AND DEBUGGING:
Break Package
?= and FROM?= may be abbreviated = and FROM, respectively. 19 NOV
⊗REG PUSHDOWN CAPACITY EXCEEDED and 19 NOV
⊗SPEC PUSHDOWN CAPACITY EXCEEDED now get you into the break
package, where you can do something like BKF 20 to find out what
caused the stack overflow. You can't go on afterwards, but at least
you know what to fix.
When you TRACE or BREAK a subr, and are asked to type a dummy 19 NOV
ARGUMENT LIST, you may type either a list of the correct number of
atoms or a single atom. In the latter case, the subr may be called
with any number of arguments and everything will work.
When you ↑C and REENTER, you may (must) now type the control 19 NOV
character specified by the manual; e.g., type <ctrl>H (not λ) to
break.
When a break is entered, TYPE-AHEAD IS SAVED and is NOT SEEN 5 NOV
BY THE BREAK PACKAGE as junk. When execution of any non-break
package function is resumed, THE TYPE-AHEAD IS RESTORED to the input
stream. So, feel free to type away.
Line Retrieval Feature
If <ctrl>ALT is typed at any point, the previous line of 5 NOV
keyboard input is saved; typing <ctrl><meta>ALT at some later time
retrieves the saved line into the line editor, for possible
modification and re-use. This feature is disabled when talking to the
break package.
Error Messages
When a LISP error message is printed, the portion of the 19 NOV
current input line which has already been read is displayed. When
reading from a file, the filename, page number,and line number are
also printed. In addition, the ENTIRE current input line is printed,
with a linefeed after the portion read so far; but the unread portion
will still be read when you continue. See PWHERE below.
When an error occurs during the reading of a file by DSKIN,
the error message is no longer suppressed !
II. →→NEW ILISP FUNCTIONS OF GENERAL(?) INTEREST:
EXIT A SUBR of no arguments. AVOID USELESS GARBAGE 5 NOV
collecting ! If you wish to SAVE a core image,
get to the monitor by calling (EXIT), and no
time-consuming garbage collection will happen
when you RUN the saved image. EXIT does an
EXCISE and a GC.
(SETIGCRLF (CHRVAL X)) 5 NOV
Resets the char. (normally →) which is
used to concatenate lines for input and output.
Returns the CHRVAL of the old char.
WORDIN A SUBR of no arguments. Like TYI, but works only 5 NOV
when input is from a file, and returns one entire
word of the file as a 36-bit quantity in AC 1, so
you had better MAKNUM it immediately ! Do not do
both WORDIN and TYI to the same input channel !
PWHERE A SUBR of no arguments. If input is from a file, 19 NOV
it prints (on the TTY) the same information printed
when a lisp error occurs: filename, page and line
numbers, and the last line read with a linefeed after
the last chr. read. Does not change the state of
anything.
III. →→FEATURES OF USE TO USERS WITH EXTERNAL (FAIL) CODE
The symbol table has been made less evanescent. As before, 5 NOV
(LOAD T) loads code into binary program space, and such code is
permanent; (LOAD NIL) places code above the lisp data spaces, and
this code is removed (along with any old I/O buffers) by (EXCISE).
An EXCISE is done at each re-allocation.
After any kind of LOAD, two kinds of symbols are present:
1) about 4k of LISP interpreter symbols, and 2) whatever symbols
came with the loaded code. All of these symbols will remain until
either (EXCISE) or (REMSYM) is called:
(EXCISE) removes the LISP symbols but leaves the others.
(REMSYM) removes all symbols.
The LISP symbols will come back whenever any LOAD is done. (REMSYM)
and (EXCISE) together should always get you back to the core size you
had when you last allocated.
The loader now uses the new definition when it finds multiply
defined globals; therefore you can reload a new copy of the same program
(such as RAID, for example) and simply ignore the MUL DEF GLOBAL messages.
*20 Nov 1974 DATE75 DATE REG
For information concerning DATE75 (i.e., the problem that the old date format
expires on Jan 5, 1975), read item 58 in UUO.UPD[S,DOC].
*24 Nov 1974 RCV BH
The somewhat controversial feature of allowing mail to be read by RCV
when not logged in has been modified so that each user can control
access to his own mail, by OPTION.TXT options. Three possibilities
are available. The default is no access. To allow your mail to be
read but not modified, put
RCV:READ
in your OPTION.TXT file. (If the not-logged-in user types RCV PRJ,PRG
the file examined is OPTION.TXT[PRJ,PRG]; for the command RCV PRG the
file is OPTION.TXT[1,PRG].) The READ option is what was formerly
always allowed. You may also allow not-logged-in users to edit your
mail file as if they were logged in by using
RCV:WRITE
as the option. This can be combined with the DIGEST and GRIPE options,
e.g.,
RCV:DIGEST,READ
Note: Users who are not logged in but are at Stanford display terminals
(III or Data Disc) always have at least READ access. Only non-local
terminals can have no access.
It should be noted that the normal file protection mechanism still
applies, so that most options which involve copying the message to
another file will not work when not logged in, and will cause RCV
to die horribly. This includes C,T,K,L,X,M, and P.
Users who are logged in may, as before, edit anyone's mail. Send
complaints to BH.
*24 Nov 1974 MAIL EVENT BH
A new MAIL command, called EVENT, can be used to tell the world about
an upcoming event. The command format is
EVENT <date> <message>
The message does two things. The first is to simulate
MAIL *→ <date-1>
That is, your message is added to NOTICE.TXT, marked for deletion the
day before the event. The second is that the message is added to a
file called <date>.DAY[2,2] where <date> here is the DAYCNT version of
the event date, in octal. (You need not worry about that detail.)
This file is typed by LOGIN on the day before the event and also the
day of the event. It is deleted automatically the day after the event.
The effect is that everyone is notified of the event three times: once
the first time they log in after you give the EVENT command, and once
each the day before and the day of the actual event.
If the event is on a Monday, the event notice will also be shown to
people who log in the preceding Friday. It will be possible in this
case to see the notice twice on that Friday, once from NOTICE.TXT and
once from the .DAY file, if you log in with "," or had not logged in
between the entering of the EVENT command and that Friday.
The <message> argument may be provided in any of the usual MAIL ways.
It will be preceded by a line of the form
Event of SUN 24-NOV-74
so you need not include the date in the text. Do include the time,
however. (As with MAIL *, the <date> argument should not include
a time.)
The typeout of the .DAY files is controlled by the PPN delimiter used
in LOGIN similarly to birthday messages: "," means you always see a
current .DAY file, "/" means you see it the first time you log in, and
"." means you don't see it at all.
*26 Nov 1974 Keyword Indexing: INDEX. Text Retrieval: NS. ME
KEYWORD INDEXING, RETRIEVAL & DISPLAYING OF TEXT FROM A USER'S FILES
The NS system can now be used to index and retrieve from a user's
files by keywords. The system program INDEX is used to initially
index a user's text and also is used to add and index further text.
The program NS (started by monitor command NS) is used to retrieve
and display indexed text.
Indexing is done using every word as a keyword except for about 100
very common words (such as "the", "and", "but", etc.) which are
ignored. Before the indexing is done, certain suffixes are removed.
The suffixes currently removed are: -S, -ES, -ING, -ED, -LY.
The file INDEX.ME[UP,DOC] describes the use of INDEX and NS for text
indexing and retrieval.
Please MAIL to ME any comments, suggestions or reports of bugs
concerning the use of INDEX and NS.
*26 Nov 1974 EVENT RCV BH
How to edit or delete EVENT notices:
If the event is more than one day in the future, the notice is in
NOTICE.TXT[2,2] and can be edited or deleted with the RCV * command.
If, while doing RCV *, you edit or delete an event message for which
a .DAY file exists, you will be asked before exiting RCV if you
want to edit that file. (If you edit more than one such message you
may be asked more than once.) You can then edit that copy of the
message also.
If the event is less than two days in the future, the notice has been
deleted from NOTICE.TXT and is now only in the .DAY file. To edit
the proper file directly, give one of the commands
RCV TODAY
RCV TOMORROW
(Note: In the former case there is one other optional step, namely,
using the CANCEL command to delete the program request which is to
delete the notice from NOTICE.TXT two days before the event. If you
don't delete the request, however, no harm is done.)
If what you want to do is change the date of an event, your best bet
is to delete the notice and start over. The reason is that besides
changing the date in the message text itself you would have to change
the mysterious number in the message header and also move the notice
from one mysteriously named DAY file to another.
*12 Dec 1974 KEYBOARD MAPPING BH
A new escape command, ESC M, has been added to allow users at
Data Disc terminals to map their keyboards to other Data Disc
terminals, so as to type into the other terminal's job.
The command is ESC <line number> M (or ESC M to map back to
your own line). In order for the command to succeed, the
specified line must be a Data Disc line (between 26 and 117),
and must be either not in use, your own line, or a line which
is unhidden (see below).
The initial state for a newly initialized terminal is unhidden.
The escape command ESC H will make your terminal hidden, and the
BREAK H command will unhide it again. Also, LOGIN will hide
your line for you automatically if you include
LOGIN:HIDE
in your OPTION.TXT file (and log in with , or /). (It should be
added that a sufficiently motivated user can always circumvent
any protection in this system.)
The ESC M (or ESC n M) command does an automatic ESC S so that
your screen will display the channel belonging to the other line.
However, any later change in the video switch setting for the
other line will NOT automatically be reflected on your screen.
Also, if the other line is looking at a channel other than its own,
you will not see that channel, but only the one which belongs to
the line.
If you are mapped to a line which becomes available (this happens
15 seconds after the job on that terminal logs out), you are
automatically mapped back to your own line, and your screen is
also automatically switched back to your own channel.
NOTE: If you map to an available terminal and type something at it,
your screen is NOT automatically switched to the new channel
assigned for that terminal. You must type ESC S.
While you are mapped to another line, certain escape commands
are still interpreted as affecting your own line. These are
the video switch (S, A, D, and T), audio switch (U and B), and
mapping (M) commands. Other escape commands affect the line to
which you are mapped.
*4 Dec 1974 NEW TELEPHONE LINES & BUSINESS CARDS LES
We are getting a new set of telephone lines such that nearly all
phones in the Lab will have a semi-private line plus 4971-3 and
the intercom line. After installation (unknown completion date,
but soon) you should place all outgoing calls on your own line
in order to keep the 4971 series clear for incoming calls. In
fact, it will not be possible to call outside the University on
the 4971 series.
For incoming calls, you may give out your private number if you wish
to receive calls directly, or 4971 if you wander about a lot, or both.
To find out what your new phone number will be, look at the list on
the Pony bulletin board. You need to know your room number to figure
it out.
We plan to print a bunch of new business cards with a format similar
to the sketch on the Pony bulletin board. If you would like to have
some, send me (LES) a message giving:
1) your name, exactly as you would like it printed,
2) title (blank, if you like)
3) telephone number(s).
For staff members who need these cards for business use, the Lab will
pick up the tab. For others (e.g. most students), it will cost you
about $5.00 for 250 cards.
*9 Jan 1975 NETWORK MAIL CC LINE BH
In our never-ending effort to have as many frills as SNDMSG, MAIL now
allows the header on ARPA network mail to separate destinations into
a "To" group and a "CC" group. To use this feature, type in all the
destinations as usual, but use a slash instead of a comma to separate
the two groups, e.g., the command
MAIL %AI RG,TK/MINSKY
will produce a header containing the lines
To: RG @ MIT-AI, TK @ MIT-AI
CC: MINSKY @ MIT-AI
There must be at least one "to" destination, and if slash is used
there must, of course, then be at least one "cc" destination.
If the /D switch is used to include a destination list in messages
sent to local recipients, the list will appear as typed, e.g.,
CC: %AI RG,TK/MINSKY
If the /N switch is used to prevent a destination list in network
messages, neither the "to" line nor the "cc" line will appear.
Note that slash cannot be the first character of a one-line message.
*26 Jan 1975 RCV: GRIPE AND NAP CHANGES BH
1. The RCV:GRIPE option in OPTION.TXT now asks you "Edit gripes?"
only if a gripe has been made since the last time you edited the
gripes with RCV. This information is kept in the creation date and
time of a zero-length file named <pn>.GRP[2,2]. The command
"RCV GRIPES" wil always edit the gripes but does update the file.
2. RCV no longer presents NAP files (news service notifications)
for editing unless the character "\" was used in the command to
request them. Instead, if a relevant NAP file is found, it types:
News Service notification for XXX, type "RCV \" to edit.
to remind you. "RCV \" gets your own news service notices, or
"RCV \PRG" for PRG's notices. The reason for this is that the
normal way to process NS notices is by running NS and giving the
@ command.
*18 Feb 1975 MAIL/Q OPTION FOR ARPA MAIL BH
The /Q switch to MAIL will automatically queue network mail without
trying to send it over the network. This is good for sending long
messages to several destinations. Bear the following points in mind:
If there are no job slots for the [RMND] phantom job, the attempt to
queue the mail will fail. In this case the "failed" status report
will be given, and the message text will be saved as FAILED.TXT if
appropriate. (If the mail is successfully queued when /Q is used,
FAILED.TXT is not written.)
The process of queueing a message can take a fairly long time. For
a short message it may not pay to use this feature.
The [RMND] phantom will attempt to send mail queued by /Q essentially
immediately (within one minute if a job slot is available), rather
than after 15 minutes as with mail queued because of a network problem.
If the first attempt fails, the next attempt will be three hours later.
The /Q switch does not affect mail to local recipients, of course.
*9 Mar 1975 Copy ∂ feature improved. SGK
The ∂ prefix to a file name in Copy reads as many as three characters
of programmer name which are massaged to yield the file name of the user's mail
file.
This service has been extended to allow the programmer name to be followed
by an extension and/or PPN. Examples:
TYPE ∂JBL.PLN Lists JBL's plan file.
TYPE ∂JBL.* Lists all of JBL's [2,2] files (messages, plan, etc.)
TYPE ∂* Lists NOTICE.TXT[2,2], the system messages file. Known to
most mail services (including MAIL and RCV) as *.
TYPE ∂*.[UP,DOC] Lists NOTICE[UP,DOC] (this file).
*16 Mar 1975 Raid, Nraid, Nnraid JBR
Two substantially identical new versions of Raid are available, namely
NRAID.REL[1,3] and NNRAID.REL[1,3]. NNRAID.DMP[1,3] is a runnable
version made from NNRAID.REL[1,3]. These new versions all use a new
symbol table format, in which the symbols are divided into 4 classes
and sorted by value within those classes. The format is described
on p75 of NRAID.FAI[CSP,SYS]. Many bugs have been fixed and some
new features added. A new writeup exists in a much more readable form
than the old one on RAID.PMP[H,RF]. The loader switch (or RPG switch)
/2V (%2V resp.) instructs the loader to sort the symbols and to load
with NNRAID.REL[1,3]. The switch /? causes the loader to sort the
symbols. These versions also know how to sort an old style symbol
table into the new format. There is a problem, however, and that is
that the new format may possibly take more space than the old one.
When this happens, certain symbols are thrown out until there is enough
room for the new symbol table to fit where the old one was. This is
where the NRAID.REL[1,3] differs from NNRAID.REL[1,3]. NRAID has about
100 extra unneeded globals which it removes when it sorts the symbol
table, thus providing some room for the larger new format symbol table.
NRAID is meant for export to other systems where the loader does not
produce the new sorted symbol table. Problems with NNRAID and NRAID
should be reported to JBR.
*17 Mar 1975 ETV Tempcore and QQSVED.RPG facility SGK
The ETV monitor command calls E. In the absence of a file name in
its montior command, E looks for it in its TMPCOR file (or QQSVED.RPG). This
file is written by ETV upon exit. The file contains a complete monitor command line
including the name of the file edited, and the page and line number at the time
of exit.
This facility has been improved such that the entire state of the
edit is preserved including the state of the file switching system.
This was accomplished via a command syntax extension to allow initial set-up
of the file swithcing system, etc. from a command line. Consequently the user
may type a much more involved command to E than before.
A number of complete file names (and optional switches)
may be separated by commas in a command line. Each file name is assigned
a slot in the file switching system and is stored there.
The switches which have been added are F and M. The F switch identifies
its file as the one to be edited first. ie the one to be displayed initally.
The M switch accepts two numeric arguments as page and line number, and sets
a mark at the specified location. Examples:
ET CHAP9.PUB(2p6,9M)
Edits CHAP9.PUB starting at page 2. Sets a mark at page 6, line 9.
ET CHAP9.PUB/F,CHAP10.PUB
Edits both files. CHAP9 is assigned slot zero and is edited initially.
CHAP10 is assigned file swithcing slot 1.
ET RODHOG.SAI(6P5L3,2M6,201M),GRPX3(21P42LF),NOTICE.TXT[UP,DOC](1P1L)
This command string is probably a TMPCOR file although it could be given
as a monitor command. It sets up RODHOG.SAI as file zero in the file switching
system with the page, line numbers, and marks given, sets up GRPX3 as file 1
with the page, line numbers given, and sets up NOTICE.TXT[UP,DOC] as file 2.
File 1 (GRPX3) will be edited first because of its F switch, and the rest will be
left to rot in the file switching system.
*20 Mar 1975 FTP BH
A new version of FTP is up, with many changes. More to come, like a
decent syntax, but here is what is changed in the present version:
It reads and interprets the reply codes on the messages from the other
host. Thus, it knows if a file transfer is refused for some reason
instead of blithely trying anyway.
When you give a USER command, it interprets the reply code to see if a
password is required. If so, it turns off echoing and asks for the
password (just the password, don't type PASS first).
When it types * at you, it really is time to enter another command.
When the connection is made, it negotiates with the other host to try
to find mutually agreeable type and byte settings. Specifically, it
tries for TYPE I and BYTE 36 first. This means that files are transferred
as binary data, a word at a time, and is the right thing for talking to
another PDP-10. If this fails, it tries for TYPE A and BYTE 8. This
means that files are transferred as standard ASCII characters. (See below.)
In order to transfer binary (non-character) data to or from an 8-bit
machine, you need to know what you are doing. More details on this below.
Conversion to and from the Stanford character set are performed in
TYPE A. That is, to have this conversion done, enter the command
"TYPE A" before starting the transfer. This automatically implies
BYTE 8 (ASCII characters are transmitted as 8-bit bytes over the
network even though they are stored as 7-bit bytes locally).
The precise translation done is the same as in TELNET, as described on
page 97 of the Monitor Command Manual (advt.): The codes 32, 176, and
175 in Stanford files are translated to 176, 175, and 33 respectively.
(The characters are tilde, right brace, and altmode.) The opposite
translations are done for incoming characters. Also, nulls (code 0) are
deleted in either direction. [The FTP server on the ITS systems requires
that you give an explicit BYTE 8 command before it will allow TYPE A.
This is a violation of protocol, and I've complained about it.]
TYPE A transfers of files from here cause SOS line numbers or E
directories to be eliminated.
To abort a transfer, or in general to reset the state of the FTP, type
ESC I. (From a non-display, type CALL and REENTER.) This will send
the FTP ABORT sequence and also disconnect the data sockets. Many, or
perhaps even most, servers don't handle ABORT properly, but they'll
notice when the data socket disappears.
More about types and byte sizes: The BYTE command you type specifies the
byte size for image type (and "local byte"; see below) transfers only,
not for ASCII type. ASCII type transfers convert 7-bit characters in
disk files into 8-bit network bytes and vice versa. Thus, the command
"TYPE I" will restore the remembered byte size (probably 36 bits if you
are talking to a PDP-10) without an explicit BYTE command. WIth 36-bit
bytes, image mode transfers are more efficient than ASCII transfers and
are preferable if character conversion is not necessary. The only time
you may need to use the BYTE command explicitly is if you are trying to
send binary data to a non-36-bit machine. There are two modes defined
for this kind of transfer, image and local byte. In image mode, consecutive
bits on one machine must be made consecutive in the stream sent to the
other machine. Thus, sending 36-bit words in 8-bit bytes means that the
fifth such byte will contain the last 4 bits of one word and the first
4 bits of another. This is inefficient and confusing at both ends, but
is necessary if all of each 36-bit word must be sent to a 360. If your
data is naturally divided into 32-bit or 8-bit pieces (as for example
if youwant to retrieve a file from a 360), you can use the first 32 bits
of each PDP-10 word to store a 360 word by specifying "local byte" type
(the command is "TYPE L"), which uses ILDB or IDPB to store 8-bit bytes
in the way which is most natural for a PDP-10. You might try BYTE 32
which should be the same in its effect but more efficient. It is possible
that the FTP server at the 360 you are interested in doesn't believe in
local byte type transfers, but on its end, since the byte size is a
factor of the word size, it is ok for the 360 to think of it as an image
type transfer while we think of it as local byte. To set this up, say
"TYPE X" which tells the other end TYPE I but does TYPE L on this end.
If this is confusing, all I can say is that trying to send binary data
to a 360 is inherently confusing, sorry about that.
One more transfer type, of limited interest, is "ASCII print file",
which you get by "TYPE P". This does an ASCII transfer but tells
the other end to format the file for printing there, e.g., perhaps
substituting spaces for tabs. Our FTP will accept TYPE P and treat it
exactly the same as TYPE A except for what it tells the other end.
If you find a bug in FTP, you can use the old one by saying "R OFTP"
to the monitor, and please mail a note to BH with the details,
preferably including a PPSAV output. Thank you.
*31 Mar 1975 COPY comments, page lists ME
COPY now treats the character semicolon (;) as a comment character
and ignores any text occurring after it (unless the semicolon is
quoted as part of a name, e.g., ↓$$;;XX↓.FOO[1,3]). Thus commands
like "TYPE FOO;bah humbug, this is only a comment<crlf>" are legal.
Also, if a page (or word) specification occurs as the last thing on
a command line to COPY, the final right parenthesis may be omitted.
That is, "FOO(2<crlf>" is equivalent to "FOO(2)<crlf>".
*9 Apr 1975 Telephone Experiment SGK
Begining Tuesday April 15 we will experiment with having
everyone in the lab answer 4971 thru 4973. See the Pony corkboard
for the complete details. In any case, please observe the following
protocol when answering the phone.
Answer with something intelligent like "AI Lab". Inform
the caller that you will page, and do so. Give the called party's
name twice, and give the line number when you page. In a reasonable
amount of time (~20 seconds) check to see if the call is still on hold.
If it is, pick it up, explain that the called party did not answer
the page, and offer to take a message which you should be prepared
to deliver via the machine or the mail boxes. If you don't have the
time to follow up on a call by takeing a message or whatever, don't
answer the phone.
*9 Apr 1975 FTP BH
New FTP user and server programs are up. The main improvement is that
the server now handles the various TYPEs properly, as explained earlier
for the FTP user program. Thus SAIL-ASCII character conversion can be
done, for example, in a transfer initiated somewhere else.
The server now accepts the ABOR (abort) command, and the associated
TELNET SYNCH facility. I am not sure that anyone else's FTP tries
to win with this feature, but it sure works nice between here and
here. (Note to remote users: I'd like to know if your local user can
successfully negotiate an abort with our server. Do a STAT on a big
area, or STOR or RETR a big file, and try to abort it.)
The user now processes the 255 SOCK message sent by servers to make
sure the data connection is made to the right socket. This is a
"security" feature, to prevent spies from sneaking into a data connection
set up by someone else's FTP. If it gives anyone any trouble I will
cheerfully disable it rather than debug it.
The user accepts a few pseudonyms for protocol commands, some for
names more familiar to our users (e.g., ALIAS) and some to help out
people used to TENEX's FTP user program. Here they are:
PSEUDONYM EQUIVALENT TO
--------- -------------
LOGIN USER
ASCII TYPE A
IMAGE TYPE I
LOCAL TYPE L
ALIAS XCWD
GET RETR
SEND STOR
DISC BYE
QUIT BYE
Some new and old bugs have been fixed in both programs: in particular,
a user bug which sometimes garbled image type transfers, and a server
bug which broke the connection on a rename or delete.
Still to come: better server responses, multiple RETR/STOR (i.e., with
wildcard filename) in user.
*19 Apr 1975 FTP server BH
Our FTP server now accepts the LIST and NLST commands. This means
that TENEX FTP users can use the DIRECTORY and MULTIPLE GET commands
in their FTP. The only problem is that TENEX doesn't know about our
filename syntax, so that if you ask for FOO.*[1,XYZ], you get files
on the TENEX system with names like "FOO.BAR[1". LIST and NLST are
identical in their effect: the listing contains one full pathname on
each line. (The STAT listing is more concise, with one line for each
PPN followed by one line per file in that PPN with just name and ext.)
Our FTP user now accepts the commands
LIST <local file> ← <remote file template>
NLST <local file> ← <remote file template>
(DIRECTORY is accepted as a synonym for LIST) to get remote directory
listings into a file. The difference between LIST and NLST is that
the listing produced by LIST may contain extra information like file
length, etc., whereas the NLST (name-list) list contains only the
file pathnames, one per line. The NLST command is intended more for
machine use than human use.
Also, as a convenience for non-SAIL-terminal users, the character "="
is now accepted as a substitute for "←" or "→" in file transfer commands.
Remember that the local file name always comes first.
*23 Apr 1975 FTP multiple RETR/STOR BH
The FTP now has several related features to make it easier to specify
filenames for transfers. The RETR and STOR commands (and their
synonyms GET and SEND) can now be given only one file specification
as an argument (the remote file specification), and it will figure
out a local filename for itself if the other system is any known PDP-10
operating system (TOPS-10 (that's us), ITS, and TENEX). Other filename
syntaxes can be added to this list if someone who needs them explains
the syntax to me. The rules used in scanning the remote file specifier
are as follows. (Note that this applies only if there is not also an
explicit local file specifier, i.e., the characters =, ←, and → do not
appear on the command line.)
1. The characters - and @ are ignored completely.
2. Characters between brokets (<...>) are ignored.
3. Characters between square brackets are ignored.
4. Characters after a semicolon are ignored, except for ITS,
in which case the token before the ; is ignored.
5. The token before a colon is ignored.
6. The character * may be used alone as a filename or extension,
to indicate multiple transfers. See below.
7. If two tokens are separated by one or more spaces and no
other punctuation, the second is taken as the extension, as if
a period separated them.
8. Filenames are truncated to six characters, extensions to three.
9. With the exceptions mentioned above, only letters and digits
may be used.
For example, the command
RETR <DIRECTORY>FILENAME.EXTENSION;87
is equivalent to
RETR FILENA.EXT=<DIRECTORY>FILENAME.EXTENSION;87
It is possible to send or receive more than one file in a single command.
For example,
RETR <DIRECTORY>*.SAV
does the obvious thing, and
RETR *.DMP[TNX,BYT]=<DIRECTORY>*.SAV
allows some control over the filenames used. Note that
RETR MUMBLE.*=*.SAV
will name all files MUMBLE.SAV, probably not a good idea. The need for
multiple transfers is determined by scanning the local file specifier,
if any; thus
RETR [FOO,BAZ]=FILE.EXT
will have the right effect but be slower than necessary because it is
taken as equivalent to
RETR *.*[FOO,BAZ]=FILE.EXT
and the fact that only one file is specified on the right is not noticed.
Be careful about spaces in the remote file specifier, which may affect
the remote server. All characers after the equal sign or arrow, if any,
or after the first space after the command name otherwise, are sent.
The mechanism for multiple RETR is that the remote file specifier is used
in an NLST command, the result of which is a list of file specifiers at
the remote host which match the template. Each of these is then scanned
to determine the local file name and retrieved. For multiple STOR, the
local (or remote if no local) file specifier is used to select files from
the proper local file directory, then the remote file specifier is used
for each STOR command, but with asterisks replaced with the actual file
name. Note: as a special heuristic, if none of the characters *, ., or
(for ITS only) space appear in the remote file specifier, it is treated
as if "*.*" were appended to it, e.g.,
STOR <DIRECTORY>
is treated as if it were
STOR <DIRECTORY>*.*
Note that the command
STOR *.*=<DIRECTORY>FILE
(which doesn't make sense anyway) will try to make remote file names by
appending the local filename to "FILE".
Device and PPN are ignored unless in an explicit local file specifier.
Thus, a command like
RETR *.DMP[X,Y]
will use "*.DMP[X,Y]" as the remote file specifier, but will store the
retrieved files on your own (alias) PPN, not on [X,Y] here. You must say
RETR [X,Y]=*.DMP[X,Y]
if that is what you mean.
I believe that this is all easier than it looks, and that any reasonable
command will do what you expect. I would like to know about any trouble
and also about any conspicuous successes. In case of emergency, the
FTP without this set of features (the one that was up until today) is
SYS:OFTP.DMP and the ancient FTP with no features at all is SYS:OOFTP.DMP.
P.S.--Multiple RETR from ITS systems doesn't work at present because
their server doesn't support the NLST command. Multiple STOR ought
to work, though.
*30 Apr 1975 FTP BH
In cases where the FTP makes up local filenames based on the remote
filename (wildcard RETR and RETR with no explicit local file name),
it first tries to look up the file it intends to write. If the file
already exists, you are so notified and may type:
<cr> to overwrite the existing file
<lf> to overwrite the file and prevent further such warnings
<alt> to abort this transfer (not all of a multiple RETR,
just this file)
or a filename to use instead of the FTP-generated name.
*24 May 1975 NETWORK SEND (MAIL) FTPS BH
A private protocol between SAIL and the three ITS hosts (MIT-AI,
MIT-ML, and MIT-DMS) permits SEND to work over the network as
MAIL does. There are three options having to do with mailing
the message if the recipient isn't logged in:
MAIL command FTP command effect
------------ ----------- ------
SEND or SEND/N XSEN fails if user is not logged in
SEND/Y XSEM mails the message if not logged in
SEND/M XMAS mails as well as sends even if logged in
The syntax of the FTP command/reply sequence is the same as for MAIL,
except that the message "009 User not logged in, will mail" may be
given in response to XSEM or XMAS. (Another message with unusual
text but a standard code is "453 Not logged in".)
If a network SEND/Y or SEND/M fails in a way which would queue
network mail, the message is queued as MAIL, not as a send. A
SEND or SEND/N which fails in this way is not queued at all.
The MAIL program will attempt network SEND using this protocol to
any host, just in case someone else implements it, but will of
course fail. This failure is in the "refused" category, so it
won't try to queue the message.
*1 June 1975 WHO ME
For complete information on WHO, see WHO.ME[UP,DOC]. Here is a list
of recently added features.
WHO now displays each job's ALIAS. If a job has an ALIAS and is not
running spacewar, then a dot is printed between the SW10 and SW6
slots to help you see which job has the ALIAS.
Two new commands (can be preceded by decimal number as argument):
FF (formfeed) scroll up whole screen
VT (vertical tab) scroll down whole screen
On non-display terminals, the monitor command WHO/Q can be used to
have WHO quickly print only the PPN and TTY number for all jobs that
are attached to a terminal.
From any terminal, the REENTER monitor command can be used to make
WHO output an updated version of the information most recently
displayed to the line printer (LPT) instead of the terminal.
*22 June 1975 WHO jobs to display and command files: *+-"@ ME
(This notice is about 100 lines long.)
For complete information on WHO, see WHO.ME[UP,DOC].
The five commands * + - " @ have been added to WHO for selecting
which jobs are to be displayed. The commands M and V now use the new
method for selecting jobs to be displayed.
M V * " These seven commands allow you to specify which jobs
+ - @ should be displayed. WHO keeps two special tables of job
specifications for deciding which jobs it will display;
these tables are called the PLUS table and the MINUS
table. Jobs specified by the MINUS table will not be
displayed (regardless of other conditions). The PLUS
table is ignored if empty; but if it is non-empty, then
only jobs specified by the PLUS table are displayed;
however, jobs specified by both tables will NOT be
displayed, since the MINUS table has priority. Both
tables are initially empty and the R and N commands reset
both tables to empty. Jobs can be specified in these
tables by project name, programmer name, project name and
programmer name, job number, and job name. Each of the
commands * + - " @ takes an argument which should be ended
with a carriage return; if an argument is ended with an
altmode, the command will be aborted. WHO will beep you
if an argument is not accepted (illegal argument or
aborted with altmode.) The commands M and V take no
argument. The argument to @ is a filename, the argument
to " is a job name, and the argument to each of the
commands * + - is a job specification which can be any of
the following forms:
PRG programmer name (letters and digits only)
,PRG programmer name (letters and digits only)
PRJ, project name (letters and digits only)
PRJ,PRG project-programmer name (letters & digits only)
NUMBER a decimal job number less than 64 (digits only)
"NAME a job name (any sixbit characters after ")
A job will match specifications of the first four types if
either its logged-in PPN or its ALIAS PPN matches the
specification. Any job running on a PTY owned by a job
being displayed will also be displayed, unless the job on
the PTY matches a specification in the MINUS table. If a
job running on a PTY is displayed and its controlling job
is not displayed, then the job on the PTY will be indented
using dots (.'s) instead of spaces (which would be used if
the controlling job were being displayed).
The seven individual commands are described below.
M only display jobs matching your logged-in programmer name
or your ALIAS programmer name (clears both tables and then
puts your logged-in programmer name and your ALIAS
programmer name into PLUS table)
V only display jobs belonging to volleyball players
(simulates an @VB.DIS[P,DOC]--see @ below)
*<spec> only display jobs matching the specification <spec>
(clears both tables and then puts <spec> into PLUS table)
+<spec> also display jobs matching <spec> except those matching
entries in MINUS table (adds <spec> to PLUS table and re-
moves it from MINUS table; leaves running-jobs-only mode)
-<spec> don't display jobs matching <spec> (adds <spec> to MINUS
table and removes it from PLUS table)
"<name> only display jobs with the job name <name>
(clears both tables and then puts <name> into PLUS table)
@<file> clear PLUS & MINUS tables and then put job specifications
from the file <file> into the tables. E directory pages
and SOS line numbers are permitted and ignored. The
default extension .DIS is used if no extension is typed.
If no PPN is typed, the disk area [P,DOC] is tried first,
then your own disk area, to find the file.
In reading from a file:
1) Spaces are ignored except in job names.
2) A semicolon (;) not appearing in a job name causes the
rest of the line to be ignored.
3) Non-sixbit characters (except lower-case letters, which
are converted to upper case) are treated just like CRLFs.
An entry in the file can be any of the forms listed below,
and should be terminated by a comma or a CRLF. Note
however that a comma (or any other sixbit character
including semicolon and space) appearing as one of the
first 6 characters of a job name will be taken as part of
the job name.
+<specx> Add the specification <specx> to PLUS table.
<specx> Add the specification <specx> to PLUS tabls.
-<specx> Add the specification <specx> to MINUS table.
Unless all entries in the file are of the form -<specx>,
WHO leaves running-jobs-only mode (R). A job
specification in a file, <specx>, can be any of the
following forms (note that these are slightly different
from the forms for <spec> that you can type in.
PRG programmer name
[PRG] programmer name
[,PRG] programmer name
[PRJ,] project name
[PRJ,PRG] project-programmer name
"NAME job name. After the " the first 6 characters
(or less if terminated by a CRLF) are taken
as a job name. Then characters are skipped
until a comma or CRLF is seen.
Note that you cannot specify a job number from a file.
*1 JUL 1975 VIDEO SWITCH MAPPING BH
The video switch control ESC commands and UUOs have been extensively
modified, to solve some problems involving video switch manipulation
by programs run by a keyboard-mapped user. The structure will be
explained in general before listing the effect of specific commands.
It is hoped that users whose programs do not use the VDSMAP UUO will
not have any difficulty continuing to use the system as always.
Each physical terminal screen is usually "tied" to some terminal
line, perhaps its own; this means that any video switch operations
performed by the program running on that line will be seen on the
screen. A screen which is tied to a line which is not in use sees
the channel containing the available message and system WHO line.
Each screen will normally be tied to the same line to which its
keyboard is mapped, but a screen can be tied to a different line or
to none at all.
There are three video switch settings associated with each Data Disk
line number: the "permanent map" and "temporary map" for the line,
which can be set by the program running on it, and the "untied map"
for the correspondingly numbered physical screen, which is seen on
that scren if it is not tied to any line. A terminal which is tied
sees the temporary map of the line to which it is tied. (An
available line has no temporary map, and any screen tied to it sees
its permanent map.)
When an available terminal line is first typed on, either by a user
physically at that terminal or by a user keyboard-mapped there from
elsewhere, all terminals which are keyboard-mapped there become tied
there (they usually will have been tied there already, but might not
have been). Thus anyone mapped there will see the newly allocated
channel. (Note: there is a possibility of terminological confusion
in discussing this. A terminal's keyboard will be said to be
"mapped" to some terminal line, either its own or another; typing at
the keyboard affects the line to which it is mapped. However, the
terminal screen is spoken of as being "tied" to a line, not mapped to
it. There are "video maps" (the three described above) associated
with screens and lines, but they "map" the screen to Data Disk
channels, not to terminal lines. In what follows,
"terminal keyboard" and "terminal screen" refer to actual pieces of
hardware, whereas "terminal line" refers to a software concept, the
entity with which TTY buffers and so on are associated. Using this
terminology, the untied map is associated with a screen, but the
permanent and temporary maps are associated with a line. As in the
last sentence, "keyboard", "screen", and "line" should be read as
"terminal keyboard" and so on in what follows. Also,
"tie the terminal to X" should be read as
"tie the terminal screen to X", etc.)
The keyboard mapping commands (ESC M, ESC n M, and BREAK M) tie the
terminal issuing the command to the line to which its keyboard is
mapped. Thus, the user who issues the mapping command sees what the
job he is controlling wants him to see.
A new command, BREAK n L, can be used to tie your screen to an
arbitrary line without affecting its keyboard map. The usual privacy
restrictions apply. BREAK L with no argument uses the line to which
your keyboard is mapped, so it is useful to mean "let me see what I'm
doing"--the function for which ESC S was usually used in the past.
NOTE: There is an ESC n L command which has nothing to do with this
one!!
The video switch commands ESC n S and BREAK {n} S, but not ESC S,
untie your terminal and set your untied map. The command thus frees
your screen from program control, so that you will not be affected by
program video switching until you are again tied to a line.
(Remember, the keyboard mapping commands and BREAK {n} L tie you.)
The effect of ESC S with no argument is described shortly.
The [ESC|BREAK] {n} T commands, in addition to the effect described
above, set a flag bit associated with your terminal which indicates
that when the program on the line to which your keyboard is mapped
does a video switch RESET operation (either explicitly or because of
a RESET of the job as a whole) you are automatically re-tied to that
line as if you had typed BREAK L. The flag is cleared by
[ESC|BREAK] {n} S and by the tying commands (the keyboard mapping
commands and BREAK {n} L). It is not affected by
[ESC|BREAK] {n} [A|D], so you can modify your untied map without
losing its RESET-ability status.
The commands [ESC|BREAK] {n} [A|D] modify the map which you are
currently watching, without modifying your tied/untied status. More
explicitly, if you are untied, your untied map is modified. If you
are tied, the effect depends on whether or not the program running on
the line to which you are tied has given a temporary VDSMAP which has
not yet been cleared by a video reset. If so, only the temporary map
is modified; otherwise, the temporary and permanent maps are
affected. In other words, if there is a temporary VDSMAP in effect,
the escape command will be temporary also. (Note: the distinction
between the temporary and permanent maps is different from the
distinction between ESC n S and ESC n T! The temporary map is
associated with a terminal line and is set to the permanent map, also
associated with the line, by a video reset of the job. If you are
untied because of either ESC n S or ESC n T, the A or D command
affects the untied map associated with your hardware screen.) Note
that if you are untied, these commands affect only what you see, but
if you are tied, they affect other users who are tied to the same
line you are.
The ESC S command with no argument is interpreted differently from
the other video switch commands. It ties you to the line to which
your keyboard is mapped, like BREAK L, and also sets that line's
temporary and permanent maps to its main channel (the one assigned to
it when it was first typed on). Thus, ESC S undoes whatever video
switch manipulation your program has done as well as tying you to it.
It affects other users keyboard-mapped to the line you are mapped to.
The ESC N command also does ESC S as well as normalizing your page
printer. Note that only ESC S and ESC N have the effect described in
this paragraph, not, e.g., ESC T. ESC S, like other forms of video
switch reset, re-ties anyone who is keyboard mapped to your line but
untied by [ESC|BREAK] {n} T.
The VDSMAP UUO normally affects the temporary (sign bit off) or
temporary and permanent (sign bit on) map of the addressed line.
That is, anyone tied to the line will see the results. If the
specified line is available, it has no temporary map, and any attempt
to set its temporary map will be a no-op.
This operation depends on the 200000,,0 bit in the UUO's AC argument
being off. If that bit is on, the UUO addresses a physical screen,
unties it, and modifies its untied map, as if the user at that
terminal had typed a video switch command. This is a privileged
function (UPG privilege). If this bit is on, the 400000,,0 bit
determines whether a video reset will re-tie the screen; if the bit
is on, the effect is like ESC n S, if off, like ESC n T.
If the 200000,,0 bit is not set in the argument, the status returned
by the UUO will be the temporary or permanent map of the addressed
line, depending on the 400000,,0 bit. If the 200000,,0 bit is on,
the UUO will return the map actually being seen by the addressed
screen: its untied map if it is untied, or the temporary (permanent
if no temporary) map of the line to which it is tied. (The 200000,,0
bit is not privileged in a get status request.)
A new VDSMAP function, with code number 5, can be used to find out if
a particular screen is tied. If the screen is tied, the UUO returns
in the AC the line number to which it is tied. If not, the UUO
returns zero if the screen was untied by ESC n S or equivalent, or
400000,,0 if the screen was untied by ESC n T or equivalent. This
function ignores the 600000,,0 bits in its argument, and never skips.
A VDSMAP UUO to a shadow line, of course, simply modifies that shadow
line's map. In this case the 200000,,0 bit is ignored, and the
400000,,0 bit must be on.
If the operation of the VDSMAP UUO is RESET, then the 200000,,0 bit
is ignored (treated as if zero). If the 400000,,0 bit is on, the
temporary and permanent maps are reset to the line's main channel,
otherwise the temporary map is set to the permanent map. Then, as
mentioned above, any terminals which are keyboard mapped to the
affected line but untied by [ESC|BREAK] {n} T are re-tied.
When a terminal line logs out and becomes available, ESC M is
simulated for all terminals keyboard-mapped to it. Also, any
terminals which are tied to it are re-tied as by BREAK L. However,
screens which are untied but watching that line's channel (e.g.,
which have typed BREAK n S) will still see the channel. This is
another reason that BREAK n L is a better way to watch another line
than BREAK n S.
*6 July 1975 WHO monitor command line ME
After WHO has exited (whether by command, by timing out, or by
finishing the output on a TTY or the LPT), typing the monitor command
CONTINUE will cause it to restart and to continue presenting on the
terminal the same information it was presenting when it exited.
Also, WHO now allows display commands to be typed in the monitor
command line BOTH on displays AND on non-displays. For example, the
following are all legal:
WHO R<cr> W QR<cr> ;Q here is ignored on displays
W@VB<cr> W QE@S<cr> ;E is ignored on non-displays
W*SYS<cr> W↑↑<cr>
W R-"WHO<cr> W RE2↑-SYS<cr>
W E<cr> W EM<CR>
The command E appearing in the monitor command line will cause WHO to
exit (on displays), but not before the whole line has been processed.
Other commands in the line are processed in order from left to right.
Thus, W EM<cr> will put up a display of your jobs (M) once and then
exit leaving the display on the screen (E). Just W E<cr> will put up
a display of all jobs once and then exit leaving the display on the
screen (E).
Any command taking an argument (@*+-") must be the last thing in the
line. Thus, the following command line is ILLEGAL:
WHO*SYS+NS
Any characters in the monitor command line which are not legal
display commands to WHO are ignored. Note that the character ";" is
a command to WHO (same as "↑") and is NOT interpreted by WHO as
delimiting a comment in the monitor command line.
*13 July 1975 WHO monitor command line (TTYs), T F commands ME
WHO display commands can now appear in the monitor command line on
TTYs as well as on displays. In addition, two new commands have been
added for both displays and non-displays.
T Type out the job information only. This works on all
terminals; WHO will exit after the typeout.
F Same as T, but devices (F is for Files) are listed also.
Both T and F omit the system statistics from the typeout.
*15 July 1975 COPY DIRECTORY switches. "]" and "\". ME
A new COPY is up with a revised output format for the DIRECTORY
command. Using the DIRECTORY command with selected switches from the
list below, the user can have any combination of 6 optional directory
fields typed out for the files listed. The name of the switch used
to force a particular field to be printed is the same as the name of
the field (as printed in the title line for the directory listing).
Here are the switches and the information they cause to be printed.
/TIME ;the file's time written
/PROTECTION ;the file's protection
/WRITER ;PPN and program name of the job that wrote the file
/REFERENCED ;the date on which the file was last referenced
/DUMPED ;the date on which the file was last dumped in a
; system dump, the tape number, and a ">" if
; dumped more than once in a permanent class dump
/OFFSET ;the (decimal) record offset for the file, if any
These switches may appear anywhere on the command line with the same
effect: all files listed will have the selected fields printed.
The /FULL switch implies the first four of these (/TIME /PROTECTION
/WRITER /REFERENCED) plus /DUMPED if COPY is running on or from (via
a PTY) a Data Disc or III display. The switch /TIME is turned on
automatically by DIRECTORY on Data Discs and IIIs. If a listing file
or device is specified for the directory listing (for example,
DIRECTORY FOO←*.*), all 6 of the above switches are turned on
automatically.
Also, any file that has a non-zero record offset will always have its
offset printed; if /OFFSET is not in effect, then the offset will be
printed on the end of that file's directory line as OFFSET = nnnn.
In /QUIET or /FAST (/F) or /FOO mode, the above switches are ignored.
Also new in COPY, right square bracket (]) is always optional at the
end of a PPN except when the programmer name is omitted and the next
character is a comma. That is, FOO[A,B means FOO[A,B] not FOO[A],B.
FOO[A,B,C is legal and means FOO[A,B],C.
Finally, file hack names, i.e., names preceded by backslash (\), may
now be abbreviated; \MAIL has been flushed--use \MSG instead.
*9 Aug 1975 FTP PICKUP MULTIPLE TRANSFER BH
The user FTP program now has a new command, PICKUP, which can be used
to continue a multiple transfer which is interrupted either by a
transient network failure or by a user error (e.g., attempt to write
into a protected file). The command permits the transfer to be
re-entered along with the (local) name and extension of the first file
actually to be transfered.
Suppose that you are trying to copy a complete directory from another
system, let's say a TENEX, so you give the command
RETR <FOO>*.*
After several files have been retrieved, the connection is broken,
while in the middle of copying <FOO>PARTIALLY.COPIED into PARTIA.COP
in your directory. You re-establish the connection, and type
PICKUP PARTIA.COP
at which point you are invited to repeat the RETR command, which will
ignore all files presented by the remote host until one comes along
which matches the name PARTIA.COP, at which point it begins actually
reading files.
If the multiple transfer is stopped because of an error which does not
break the network connection, so you can continue using the same FTP,
you can give the PICKUP command without a filename argument, in which
case the last filename for which a transfer was attempted is used.
Also, after the PICKUP command, you can just type <return> instead of
repeating the STOR or RETR command, and the last such command given
will be repeated. The last transfer must have been a multiple STOR or RETR.
If the PICKUP command line ends with <alt> instead of <return>, the
first file transfered will be the one after the one in the argument
(or the one after the one remembered from the aborted transfer).
This is useful for the case of a transfer which cannot be done
because of a protection violation, when you want to continue the
multiple transfer, skipping the protected file. In a situation like
that, you may not know the name of the first file you want to transfer,
but only the name of the last file you don't want to transfer.
If a PICKUP command is given after a transfer which is not multiple
but for which an implicit local filename was used, e.g.
RETR <FOO>FILENAME.EXTENSION
which implicitly specifies FILENA.EXT as the local name, then the
PICKUP command with no argument can be used to repeat the transfer.
*25 Aug 1975 FIND WITHIN ME
(Complete FIND documentation is in FIND.TES[S,DOC].)
A new FIND is up with two new features. First, and of lesser
importance, the line on which a key is found is now preceded by a
greater-than sign (>) instead of an asterisk (*).
Secondly, the new FIND allows specification of the delimiter that
determines the amount of text searched as a unit and typed out when a
key is found. The default typeout is a paragraph (i.e, text
delimited by blank lines) as before. To specify some other quantity,
use the WITHIN <delim> phrase in the command (see the syntax below).
The text typed out will be that delimited by <delim> at the beginning
and at the end. The delimiter <delim> can be specified as a single
character or it can be specified by one of the following exact names:
MSG LINE PAGE PARAGRAPH GRAF
where MSG means that partial sign (∂) is the delimiter (designed for
use with mail files), LINE means that linefeed is the delimiter
(i.e., only the line on which the key is found will be typed), PAGE
means that formfeed (a pagemark) is the delimiter, and PARAGRAPH or
GRAF means that a blank line is the delimiter (this is the default).
The delimiter character will be treated as a delimiter only if it
occurs as the first character on a line; a line starting with the
delimiter character is considered the first line in a new text unit.
The syntax is now:
FIND [EXACTLY] [WITHIN {char|MSG|LINE|PAGE|GRAF}] [EXACTLY] key [[IN] file]
where square brackets indicate optional elements, braces contain
several alternatives, char is a single character, and key is
the string to be found in file.
Within a single delimited text unit, up to about 25 lines can occur
both before and after the line in which the key is found. If more
than about 25 lines occur before and/or after the key but within the
delimited text area, an ellipsis (. . .) will be typed out before the
first line typed out and/or after the last line typed out.
Examples:
FIND WITHIN ∂ EVENT IN NOTICE.TXT[2,2
FIND WITHIN ∂ EXACTLY " E " IN NOTICE.TXT[2,2
FIND WITHIN MSG PDP-11 IN NOTICE.TXT[2,2]
FIND WITHIN PAGE UDPUFD IN MONCOM.BH[S,DOC
FIND EXACTLY WITHIN LINE Foo IN FILE1
*1 Sept 1975 FIND MAIL FILES (∂) ME
(Complete FIND documentation is in FIND.TES[S,DOC].)
FIND now accepts filename specifications using the partial sign (∂)
to specify a mail file (.MSG[2,2]). The partial sign can optionally
be followed by 1)a programmer name to specify one other than your
own, and/or 2)an asterisk (*) to specify the system message mail file
NOTICE.TXT, and/or 3)an extension to specify one other than .MSG,
and/or 4)a PPN to specify one other than [2,2]. When a partial-sign
filename specification is used, the default amount of text to be
searched and typed out as a unit (see the FIND notice for 25 Aug
1975) is one message, that is, all text between partial signs in the
searched file; this can be overridden using the WITHIN <delim>
phrase.
For instance, the command
FIND garply baz in ∂
will search your own mail file for "garply baz" and type out the entire
message(s) it occurs in. The command
FIND ,me in ∂*
will find all system messages (in NOTICE.TXT[2,2]) from ME. The
command
FIND ,me in ∂bh
will find all messages sent to BH by ME, and the command
FIND president in ∂.nap
will search your own News Service notification file on [2,2] for all
notifications containing "president".
*8 Sept 1975 COPY /NOFF ME
The new COPY switch /NOFF suppresses the output of formfeeds found in
input files. When this switch appears in the destination file term,
it applies to all source files. When it appears after a source file,
it applies only to that file. /NOFF implies /ASCII.
For example,
COPY FOO/NOFF←BAZ,GAR
would create a one-page file FOO by concatenating all pages of BAZ
with all pages of GAR, and the command
COPY FOO←BAZ/NOFF,GAR(3:5)
would create FOO by combining all pages of BAZ into page 1 of FOO
followed by pages 3 through 5 of GAR which would become pages 2
through 4 of FOO. The command
COPY FOO←BAZ(2:3),GAR/NOFF
would create a two page file FOO whose second page would be the
concatenation of page 3 of BAZ and all pages of GAR.
Note that /NOFF does not inhibit the insertion of formfeeds that
occurs every 52 or so lines when /HEADER is specified (for example,
by the LIST command), nor does it suppress formfeeds inserted by the
line printer (LPT) after 54 lines are printed on a page.
*22 Sept 1975 SAIL JFR
The files SAISG8.SEG, SAILOW.REL, LIBSA8.REL, HLBSA8.REL, SAIL.DMP, and
SAIL.SEG on [1,3] have all been updated. Backup .OLD files exist where
appropriate. Existing programs should continue to run as before.
Three major changes and many minor improvements and bug fixes have been made.
These modifications were made with support from the Computer Science
Department of Carnegie-Mellon University. The major changes are summarized
here; for the minor changes and more details, see NEWSAI.DOC[S,AIL].
1. The compiler runs with its own sharable upper segment of 28K.
2. A save-and-continue facility has been implemented. This allows a group
of header files to be compiled once and later used to produce many separate
.REL files. This feature is similar to the operation of UNIVERSAL files
in FAIL or MACRO.
3. A new runtime routine, EDFILE("file",line,page,bits[0]) provides an easy
link to either E or SOS.
*27 Sept 1975 RAID POINT mode input JBR
Meta <.> (that's pronounced POINT) followed by two or three values
(not containing comma) separated by commas, causes a byte pointer to
be assembled with the same value that FAIL would generate for
POINT VAL1,VAL2,VAL3 with the exception that decimal radix is not forced
for VAL1 and VAL3 as in FAIL. If the trailing comma and VAL3 are
omitted, then 44 octal is used for the position field.
*13 Oct 1975 FINGER LES
The system command "FING" shows data on all jobs, in order by
programmer initials. The "IDLE" column shows the time, in minutes,
since the given job was last in the RUN queue. If the job is
currently in the STOP queue, a "." follows.
The command "FING <people list>" shows data only on the specified people.
For example, "FING JMC,DAVE,HERSK" requests information on programmer JMC
and anyone whose first or last name begins with "DAVE" or "HERSK".
String matching uses the following precedence:
1) exact match on programmer initials,
2) exact match on friendly or last names,
3) match on leading characters of friendly or last names.
If a given string matches more than one person at a given level, it
reports "ambiguous" and lists their names.
For people who are not logged in, it tells when they last logged out
and shows their plan file, if any.
FILE LISTS
Arguments in the FINGER command are separated by commas and/or spaces.
An argument of the form "@<file name>" causes that file to be read.
Files can include references to other files, ad nauseum. In files,
everything to the right of a semicolon on a given line is ignored,
so that comments can be put there.
The default file extension is "DIS" and the default PPN is "[P,DOC]".
Thus if you say "FING @H", it will first look for a file in you area
called "H". If that doesn't exist, it will next try "H.DIS" in your
area and, if necessary, "H.DIS[P,DOC]", the latter being the list of
hand-eye people which is kept in [P,DOC] along with other group lists
(see SAIL Telephone Directory).
SWITCHES
The argument list may also contain switches of the form "-PLAN" or
"-LOGOUT", which suppress the output of plan files and times of
last logout, respectively. These may be abbreviated to as little
as "-p" and "-l". Thus, if you give the command "FING @VB @M-L"
you will get information only on people in the Volleyball and Music
Groups who are logged in.
*25 Oct 1975 SNAIL (the new RPG) MJC
SNAIL, the new RPG, is finally up. It is currently run for all of the old
RPG commands except the edit commands (EDIT, CREATE, TECO, MAKE), which
will be added soon. The writeup (which will appear as an appendix in the
the new edition of the Monitor Command Manual) is in SNAIL.MJC[S,DOC].
Differences between SNAIL and RPG are the following (see also NEWS entry of
29 Oct 1975):
1. SNAIL is bigger. It contains lots of debugging checks and display routines
for working storage; these will go away after a suitable length of time,
and SNAIL will then be about the same size as RPG.
2. SNAIL uses tmpcor files instead of disk files for intermediate storage.
When all relevant processors are converted to use tmpcor command files,
the tmpcor file names will be as follows:
tmpcor processor
FAI FAIL
SAI SAIL
MAC MACRO Currently still uses QQMAC.RPG
F4 FORTRAN Currently still uses QQFORT.RPG
PAL PALX Currently doesn't read any command files
PUB PUB Currently still uses QQPUB.RPG
POX POX
CRF CREF Currently still uses QQCREF.RPG
LOD LOADER Currently still uses QQLOAD.RPG
LNK LINK
ED Editors Currently still uses QQSVED.RPG
CM SNAIL command file
When tmpcor storage runs out, SNAIL creates files named nnnxxx.TMP, where
nnn is the user's job number and xxx is the name of the corresponding
tmpcor file.
3. SNAIL accepts four new commands: POX, RER, RERUN, and PROCESS. The POX
command runs POX on the specified file. The other three commands load the
system line editor like DO does, only faster.
RER processor {core size}↔string swaps to the specified processor after
loading the string into the line editor.
RERUN processor {core size}↔string does the same thing as RER, but finds
the processor from device DSK instead
of device SYS.
PROCESS string loads the string into the line editor.
Occurrences of double-arrow ("↔") in the string are converted to carriage-
returns; none of the other substitution features of DO are implemented.
A carriage return is supplied at the end of the string. The core size
argument for the RER and RERUN commands is optional (that's what the braces
mean -- don't type them in the command). The double-arrow preceding the
string must appear, however, for the RER and RERUN commands as well as for
the PROCESS command.
All of the new commands are written into the CM tmpcor file. When SNAIL
scans a command with no arguments and consequently reads the CM file, it
checks to make sure the command from the file is compatible with the
command from the terminal. COMPILE, LOAD, EXECUTE, TRY, PREPARE, and
DEBUG are all compatible only with each other; RER and RERUN are compatible
only with each other; and POX, PUB, and PROCESS are compatible with no
other commands.
4. The TV and CTV commands have been eliminated.
5. If the creation times on the source and .REL files are the same, loading
is done instead of recompiling.
6. Device names are now treated correctly, e.g., specifying SYS: on a library
file isn't ignored anymore. A source file from device TTY: concatenated
to any other file forces compilation (e.g., FAIL will always be run when
the command LOAD TTY:+FOO.FAI is given). Also, device TTY: does not need
a file name.
7. Switches are now listened to somewhat harder than extensions. For example,
EX FOO/SAIL now works if there is only a file FOO.XXX, or if both FOO.SAI
and FOO.FAI exist. However, it is still not possible to persuade SNAIL to
run FAIL on FOO.SAI, and saying FOO.SAI/FAIL will generate an error message.
8. CREF generates a .LST file rather than doing output directly to the line
printer.
9. The PUB command doesn't run FAIL any more. (I know you're all sorry to
see this go.)
10. An ETV directory in a command file specified by an at-sign ("@") is now
ignored.
11. Switches to the LINK loader appear following a percent sign ("%"), like
switches to LOADER; the first non-blank character after the percent sign
is taken to be the switch delimiter, and the switch string is everything
up to the next occurrence of the delimiter character. Example:
LOAD/LINK FOO%"RUNCOR:15"
The /LINK switch indicating to SNAIL which loader will be used must appear
in the command line before the switches to LINK.
12. If all files in the command string are SAIL files, and the command specifies
a debugger (TRY, PREPARE, DEBUG), BAIL is assumed to be the desired debugger.
SNAIL adds "27B" to the binary compiler switches for the first file to be
compiled; if no files will be compiled, SNAIL assumes that one of the .REL
files already contains the load request for SYS:BAIL.REL and therefore does
nothing. Since neither LINK nor LOADER knows enough about BAIL to let it
take immediate control at execution time, the DEBUG command is changed to
the TRY command when BAIL is the only debugger loaded.
13. There are several new and different switches. A minus-sign ("-") preceding
a switch now specifies negation of that switch; hence several switches
which formerly were negations of other switches are now eliminated (NOLIST,
NOSEARCH, NOTFORWARD, NOCOMPILE, LOAD). Switches dealing with the loader
may not be negated. A few switches are renamed for greater mnemonic value
(SAVE = old DUMP, PROCESSOR = old NONSTANDARD). The switches NSAIL, OSAIL,
and PUB have been eliminated. New switches are the following:
/LONLY Only make a listing for this file; generates the
command line ",FILE←FILE". Implies /COMPILE.
/CONLY Only make a cref listing for this file; generates the
command line ",FILE/C←FILE". Implies /COMPILE.
/DDT Load DDT if the command specifies a debugger.
/RAID Use RAID if the command specifies a debugger.
/BAIL Use BAIL if the command specifies a debugger.
/LINK Use LINK to create the core image.
/LOADER Use LOADER to create the core image (default).
/NOCMFI Don't generate a CM tmpcor file.
The REL switch now means "use the REL file if it exists, and the source or
dump file otherwise" rather than "always use the REL file". The SAVE switch
is not necessary when the left-arrow construct is used.
14. Switches may now be specified on a command with no arguments (for example,
TRY/COM is now legal). Effectively, the switches specified from the
terminal are added to the end of switches appearing after the command
in the CM tmpcor file, and may override the switches appearing after the
command in the file. Examples:
command contents of file equivalent to
TRY/COM EX FOO TRY/COM FOO
TRY/LONLY EX FOO COM/LONLY FOO
EX/-LONLY COM/LONLY FOO EX FOO
EX/-LONLY COM FOO/LONLY EX/-LONLY FOO/LONLY
A number of compatibilities with the old RPG have been preserved in order to
ease the transition to SNAIL. SNAIL will reside on SYS:RPG.DMP for awhile
(although running under job name SNAIL) until processors like DO which swap
to RPG are updated. The edit commands will run a copy of the old RPG
(SYS:ORPG.DMP) until these commands are implemented in SNAIL. The QQxxxx.RPG
disk command files will be generated for FORTRAN, MACRO, PUB, DO, CREF,
and LOADER until these processors are converted to read from tmpcor files;
tmpcor files with the appropriate names are also generated for these processors.
*26 Oct 1975 RAID JBR
1. RAID now knows about the opcodes DFN and UFA.
2. RAID now accepts E mode floating point typein of the form
nnnn.mmmmExxx where mmmm may be omitted and + may be omitted
after the E.
WARNING: The larger the magnitude of the exponent you use, the
less accurate the value is. This is because FAIL doesn't really
understand floating point. When FAIL is fixed RAID will be fixed.
Meanwhile, you can check your values by letting RAID tell you what
you have.
3. The command <control>& has been changed to open the block that
contains the symbol being typed out for the value of "dot" (not to
be confused with the contents of dot). This command used to open
the block containing the last symbol typed in.
*29 Oct 1975 SNAIL MJC
More differences between RPG and SNAIL:
The function of the semicolon in command files now means "ignore text up
through the next line-feed", just like for monitor commands. CRLFs in
command files are completely ignored. Whereas RPG required semicolons
whenever a command line was continued (e.g. when using the plus construct),
SNAIL does not require them. However, SNAIL does require punctuation
between the various compilation commands, even though they are separated
by a crlf; for example,
LOAD @XXX
where XXX contains
FOO=FOO1
BAR=BAR1
would have worked with RPG, but since SNAIL reads it as
FOO=FOO1 BAR=BAR1
an error message is typed. A comma should appear between the two
specifications.
When RPG was given a command to compile a file on some other disk area,
for instance, with the command LOAD FOO[2,MJC] where the current disk area
is [1,MJC], it checked dates on REL files as follows:
1. if FOO.REL[2,MJC] existed, it was used, whether or not FOO.REL[1,MJC]
existed;
2. if FOO.REL[2,MJC] didn't exist but FOO.REL[1,MJC] did, FOO.REL[1,MJC]
was used;
3. FOO.REL[1,MJC] was generated when the REL file was created before the
source file.
SNAIL, on the other hand, always checks first on the user's own disk area
to find a REL file to use, the rationale being that that's where the REL
file would be if one had been generated by some previous command. If no
REL file exists on the user's own disk area, the directory specified on the
source file is checked, so that the REL file in the directory where the
source file came from can be used if it was created after the source file
was compiled. In the example above, the following would result:
1. if FOO.REL[1,MJC] exists, it is used for date checking;
2. if FOO.REL[1,MJC] doesn't exist but FOO.REL[2,MJC] does, the latter
is used for date checking;
3. whatever REL file is used, if its date disqualifies it, FOO.REL[1,MJC]
is generated.
The REL file to be checked can be specified explicitly by the user, using
the equal-sign construct. If a ppn or device is specified with a file name
followed by an equal-sign, that REL file is used for date-checking. If
the specified REL file doesn't exist or its creation date was earlier than
that of the source file, SNAIL will generate a command to compile the source
file with the binary file being the one specified with the equal-sign;
however, some processors ignore ppns and devices on binary file specifications,
so the REL file may end up on the user's own disk area anyway.
*30 October 1975 Bureaucracy: Computer time usage LES
To find out how much computer time has been used by any given group,
say
.R BUREAUCRACY (actually, just "R BUREAU" will do).
The program will ask for dates, PPN lists, and output form. If you
give null responses (CR) to all requests, the program will
automatically show a summary of computer utilization by project from
the beginning of the current year through yesterday.
Data covered include number of PPNs, number of logins, job hours, CPU
minutes, core K minutes, and "Doubloons" (an approximate measure of
overall cost on an arbitrary scale). The entries are in order of
decreasing doubloons, except that "All others" is always last.
DATES
Alternatively, you can "roll your own". The raw data is stored by
PPN for each month over the past year and for each year back to 1971.
When it asks for dates, you can say something like "Jul:Oct", which
may or may not work. If the current date is December, this gives
you data for the current year. If the current date is May, last
year's data is used. If you say that in July, August, or September,
it will simply complain. It doesn't hurt to ask.
If you say just "May" then you get data for the last instance of that
month only. If you say ":May" you get data from 1 January through
May. If you say 72 or 1972, you get data for that entire year. If
You mention the current year, or if you just hit <carriage return>,
you get year-to-date data.
PPNs
When the program asks for PPNs, you can say something like:
Bureaucrats:JMC,LES,TW; Bad guys:REG,[SPL,SYS]; Classes: [206],[225]
which will gather data on three groups, separated by ";". Labels (one
or more words ending in ":") may appear anywhere in the group list.
If you omit labels, the groups will be named "Group 1", "Group 2",
etc.
More generally, the following elements may appear in PPN lists:
group label:pn,[pj],[pj,pn],[*,pn],[pj,*],@file,@@,/SUMMARY
Nothing need be capitalized. [pj] is of course equivalent to [pj,*]
and pn means [*,pn]. If a given PPN qualifies for membership in more
than one group, then [pj,pn] takes precedence over [pj,*], which in
turn outranks [*,pn]. If you mention exactly the same thing in more
than one group the program will grumble, but will ignore conflicts
and continue.
Now about the "@file" gizmo: This lets you compose a horrendous list
as a text file and gobble it into the middle of the line. The file
name may contain a PPN. Any TV/E directory or SOS line numbers will
be ignored. While the on-line response is restricted to one line,
the text file may contain many lines. It will be read as if the
carriage returns don't exist. You can go indirect any number of times
and any number of levels, though string space may freak out
eventually.
The "@@" form says "go read the telephone list". This will assign
everyone to groups on the basis of project affiliations given in our
telephone directory. Individuals who are in more than one project
are arbitrarily pushed into the first one on their list. People
without a listed project are dumped into "Miscellaneous". Of course,
this still leaves a few "outlaws" who are not on any of our
authorized user lists. You can precede the "@@" with one or more
group lists of your own, which will take precedence over the
directory groupings.
OUTPUT
After the data is generated, the program repeatedly asks for an
output specification of one of the following kinds:
<blank> type a summary
* type detailed listing
S spool a summary
S* spool details
<file> save summary in file
<file>* save details in file.
. loop back to respecify PPNs and dates.
On reruns, the null reply to PPN and Date questions means "just like
last time". Thus, you can easily ask for data from a different time
period with the same cast of characters, or for the same time with
another group.
*4 Nov 1975 Pub Update LES
There is an update to the Pub Manual and a Summary Reference/Index in
PUB.UPD[S,DOC].
*6 Nov 1975 PALX JBR
PALX has been added as a standard processor. This means you can say
COMPILE FOO to have PALX assemble FOO.PAL. SNAIL will check to see
that the date on the .PAL file is not earlier than the date on the
corresponding .BIN file. Shortly, if you say TRY, LOAD, PREPARE,
EXECUTE or DEBUG with a .PAL file, PALX will be run and it will swap
to 11TTY when it is done.
*11 Nov 1975 Phone Call Logging LES
Our procedures for reviewing telephone toll calls have gotten rather
complicated lately. At the same time, there is increasing pressure
from the government auditors to justify each call. One possible
solution would be to maintain written logs on each phone and collect
these once a month. I would like to try an equivalent but,
hopefully, easier approach: the use of a logging program, as follows.
We want records on all toll and message unit calls. Tie-line and "9"
calls to the immediate area (e.g. Redwood City through Moutain View)
don't count. After you complete such a call, please log in and say
"R PHONE". It will ask a series of questions about the number
called, the place, and who pays (ARPA, NSF, or whatever).
If you are confused about who should pay for a given call, please see
me or send me a message. You can hit "CALL" any time up until you
answer the last question (who pays) and the entry will be flushed.
If the computer is down, please keep a scribbled record and enter it
at the next opportunity. To the extent possible, I would appreciate
it if you could enter recent history back to November 1.
People with Lab-provided home phones should use this same procedure
for logging calls made on those lines.
Please be careful to use tie lines where appropriate rather than
blindly dialing "9". The government auditors are attempting to
disallow all such misdialed calls. That means the Computer Science
Department gets stuck with the bill, and much anguish.
For personal calls, we request that you place them through the
outside operator and have them billed directly to your home phone.
If you don't do it that way, we not only have to extract the cost
from you, but we have to convince the auditors that we collected,
which is more hassle than we care to deal with.
I regret having to add this administrative burden, but other
alternatives appear to be worse.